[FFmpeg-devel] [PATCH] lavd/avdevice: add control message enums
wm4
nfxjfg at googlemail.com
Thu Apr 10 01:00:56 CEST 2014
On Thu, 10 Apr 2014 00:51:00 +0200
Lukasz Marek <lukasz.m.luki2 at gmail.com> wrote:
> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> ---
> libavdevice/avdevice.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 46 insertions(+), 2 deletions(-)
>
> diff --git a/libavdevice/avdevice.h b/libavdevice/avdevice.h
> index 8b78067..b676934 100644
> --- a/libavdevice/avdevice.h
> +++ b/libavdevice/avdevice.h
> @@ -109,6 +109,14 @@ typedef struct AVDeviceRect {
> int height; /**< height */
> } AVDeviceRect;
>
> +typedef union AVDeviceValue {
> + u_int64_t u64;
> + int64_t i64;
> + double dbl;
> + const char *str;
> + AVRational q;
> +} AVDeviceValue;
> +
> /**
> * Message types used by avdevice_app_to_dev_control_message().
> */
> @@ -137,7 +145,19 @@ enum AVAppToDevMessageType {
> * data: AVDeviceRect: area required to be repainted.
> * NULL: whole area is required to be repainted.
> */
> - AV_APP_TO_DEV_WINDOW_REPAINT = MKBETAG('R','E','P','A')
> + AV_APP_TO_DEV_WINDOW_REPAINT = MKBETAG('R','E','P','A'),
> +
> + /**
> + * Request pause/play.
> + *
> + * Application requests pause/unpause playback.
> + * Mostly usable with devices that have internal buffer.
> + *
> + * data: NULL
> + */
> + AV_APP_TO_DEV_PAUSE = MKBETAG('P', 'A', 'U', ' '),
> + AV_APP_TO_DEV_PLAY = MKBETAG('P', 'L', 'A', 'Y'),
> + AV_APP_TO_DEV_TOGGLE_PAUSE = MKBETAG('P', 'A', 'U', 'T')
Wait, why do these enum values use fourcc? Isn't that excessively ugly
and has literally no advantages?
> };
>
> /**
> @@ -196,7 +216,31 @@ enum AVDevToAppMessageType {
> *
> * data: NULL.
> */
> - AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = MKBETAG('B','D','E','S')
> + AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = MKBETAG('B','D','E','S'),
> +
> + /**
> + * Buffer fullness status messages.
> + *
> + * Device signals buffer overflow/underflow.
> + *
> + * data: NULL.
> + */
> + AV_DEV_TO_APP_BUFFER_OVERFLOW = MKBETAG('B','O','F','L'),
> + AV_DEV_TO_APP_BUFFER_UNDERFLOW = MKBETAG('B','U','F','L'),
> +
> + /**
> + * Buffer readable/writable.
> + *
> + * Device informs that buffer is readable/writable.
> + * When possible, device informs how many bytes can be read/write.
> + *
> + * @warning Device may not inform when number of bytes than can be read/write changes.
> + *
> + * data: AVDeviceValue(int64_t): amount of bytes available to read/write.
> + * NULL: amount of bytes available to read/write is not known.
> + */
> + AV_DEV_TO_APP_BUFFER_READABLE = MKBETAG('B','R','D',' '),
> + AV_DEV_TO_APP_BUFFER_WRITABLE = MKBETAG('B','W','R',' ')
> };
>
> /**
More information about the ffmpeg-devel
mailing list