[FFmpeg-devel] [PATCH 2/5] lavu/hwcontext_vaapi: add vaapi_format_map for Y210/AYUV/Y410

Mark Thompson sw at jkqxz.net
Sun Jul 7 15:13:09 EEST 2019


On 28/06/2019 03:27, Linjie Fu wrote:
> Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> ---
>  libavutil/hwcontext_vaapi.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
> index 4227c3c..6378d0e 100644
> --- a/libavutil/hwcontext_vaapi.c
> +++ b/libavutil/hwcontext_vaapi.c
> @@ -116,6 +116,14 @@ static const VAAPIFormatDescriptor vaapi_format_map[] = {
>  #endif
>      MAP(UYVY, YUV422,  UYVY422, 0),
>      MAP(YUY2, YUV422,  YUYV422, 0),
> +#ifdef VA_FOURCC_Y210
> +    MAP(Y210, YUV422_10,Y210LE, 0),
> +#endif
> +#define VA_RT_FORMAT_AYUV VA_FOURCC_AYUV

VA_RT_FORMAT_* is a mask, VA_FOURCC_* is effectively a set of enum values.  They aren't usable as each other like this.

> +    MAP(AYUV,   AYUV,     AYUV, 0),

Is AYUV actually intended to support decoding alpha, or is it just a packed representation for YUV 4:4:4 data (like RGB0)?  If the former, you should probably add a new render target format to libva.  If the latter, you can use VA_RT_FORMAT_YUV444 with it.

> +#ifdef VA_FOURCC_Y410
> +    MAP(Y410, YUV444_10,Y410LE, 0),
> +#endif
>      MAP(411P, YUV411,  YUV411P, 0),
>      MAP(422V, YUV422,  YUV440P, 0),
>      MAP(444P, YUV444,  YUV444P, 0),
> 

- Mark


More information about the ffmpeg-devel mailing list