[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