From 0eccd15852b9f1933166447cee8a8409d90bfe79 Mon Sep 17 00:00:00 2001 From: Thong Thai Date: Wed, 21 Oct 2020 21:54:57 -0400 Subject: [PATCH] frontends/va: Return P010/P016 as possible surface formats when encoding When gstreamer's vaapih265enc queries for possible surface formats, it only queries using VA_RT_FORMAT_YUV420, so add P010 and P016 as possible surface formats to enable 10-bit/16-bit encoding. Signed-off-by: Thong Thai Reviewed-by: Leo Liu Part-of: --- src/gallium/frontends/va/surface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/frontends/va/surface.c b/src/gallium/frontends/va/surface.c index 368b1cbcfc7..c396b158cd7 100644 --- a/src/gallium/frontends/va/surface.c +++ b/src/gallium/frontends/va/surface.c @@ -484,7 +484,9 @@ vlVaQuerySurfaceAttributes(VADriverContextP ctx, VAConfigID config_id, attribs[i].value.value.i = VA_FOURCC_NV12; i++; } - if (config->rt_format & VA_RT_FORMAT_YUV420_10BPP) { + if (config->rt_format & VA_RT_FORMAT_YUV420_10 || + (config->rt_format & VA_RT_FORMAT_YUV420 && + config->entrypoint == PIPE_VIDEO_ENTRYPOINT_ENCODE)) { attribs[i].type = VASurfaceAttribPixelFormat; attribs[i].value.type = VAGenericValueTypeInteger; attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE;