[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