[FFmpeg-devel] [PATCH v1] libavutil: add A2R10G10B10 & A2B10G10R10

Carl Eugen Hoyos ceffmpeg at gmail.com
Wed Sep 11 02:29:44 EEST 2019


Am Di., 10. Sept. 2019 um 11:35 Uhr schrieb Zachary Zhou
<zachary.zhou at intel.com>:
>
> ---
>  libavutil/hwcontext_vaapi.c | 6 ++++++
>  libavutil/pixfmt.h          | 3 +++
>  2 files changed, 9 insertions(+)
>
> diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
> index cf117640f2..9838250b66 100644
> --- a/libavutil/hwcontext_vaapi.c
> +++ b/libavutil/hwcontext_vaapi.c
> @@ -125,6 +125,12 @@ static const VAAPIFormatDescriptor vaapi_format_map[] = {
>  #endif
>      MAP(BGRA, RGB32,   BGRA, 0),
>      MAP(BGRX, RGB32,   BGR0, 0),
> +#ifdef VA_FOURCC_A2R10G10B10
> +    MAP(A2R10G10B10, RGB32_10, A2R10G10B10, 0),
> +#endif
> +#ifdef VA_FOURCC_A2B10G10R10
> +    MAP(A2B10G10R10, RGB32_10, A2B10G10R10, 0),
> +#endif
>      MAP(RGBA, RGB32,   RGBA, 0),
>      MAP(RGBX, RGB32,   RGB0, 0),
>  #ifdef VA_FOURCC_ABGR
> diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> index d78e863d4b..e00f129b46 100644
> --- a/libavutil/pixfmt.h
> +++ b/libavutil/pixfmt.h
> @@ -348,6 +348,9 @@ enum AVPixelFormat {
>      AV_PIX_FMT_NV24,      ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
>      AV_PIX_FMT_NV42,      ///< as above, but U and V bytes are swapped
>
> +    AV_PIX_FMT_A2R10G10B10, ///< 10-bit Pixel RGB formats.
> +    AV_PIX_FMT_A2B10G10R10, ///< 10-bit Pixel BGR formats.

The patch looks insufficient, see the patch to add AYUV and other
packed formats.

The more important question imo is: Why are these formats needed,
which hardware produces them for which input?

Carl Eugen


More information about the ffmpeg-devel mailing list