diff options
author | Julien Isorce <[email protected]> | 2016-10-17 17:33:36 +0100 |
---|---|---|
committer | Julien Isorce <[email protected]> | 2016-10-18 08:44:14 +0100 |
commit | dbc8e181166c96d8344355757e46c4cfc8f634e5 (patch) | |
tree | 8cf0720f40c39a7d00d69af5d58f154867527360 | |
parent | 9f677d6541741af483c22f29e81f0d883f86028a (diff) |
st/va: set default rt formats when calling vaCreateConfig
As specified in va.h, default value should be set on attributes
not present in the input list.
Signed-off-by: Julien Isorce <[email protected]>
Reviewed-by: Mark Thompson <[email protected]>
-rw-r--r-- | src/gallium/state_trackers/va/config.c | 9 | ||||
-rw-r--r-- | src/gallium/state_trackers/va/surface.c | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/va/config.c b/src/gallium/state_trackers/va/config.c index 2f96eb6cedf..da52a58c5db 100644 --- a/src/gallium/state_trackers/va/config.c +++ b/src/gallium/state_trackers/va/config.c @@ -195,6 +195,11 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin } } } + + /* Default value if not specified in the input attributes. */ + if (!config->rt_format) + config->rt_format = VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_RGB32; + pipe_mutex_lock(drv->mutex); *config_id = handle_table_add(drv->htab, config); pipe_mutex_unlock(drv->mutex); @@ -256,6 +261,10 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin } } + /* Default value if not specified in the input attributes. */ + if (!config->rt_format) + config->rt_format = VA_RT_FORMAT_YUV420; + pipe_mutex_lock(drv->mutex); *config_id = handle_table_add(drv->htab, config); pipe_mutex_unlock(drv->mutex); diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c index 5e929803b01..f8513d93e02 100644 --- a/src/gallium/state_trackers/va/surface.c +++ b/src/gallium/state_trackers/va/surface.c @@ -419,7 +419,7 @@ vlVaQuerySurfaceAttributes(VADriverContextP ctx, VAConfigID config_id, /* vlVaCreateConfig returns PIPE_VIDEO_PROFILE_UNKNOWN * only for VAEntrypointVideoProc. */ if (config->profile == PIPE_VIDEO_PROFILE_UNKNOWN) { - if (config->rt_format == VA_RT_FORMAT_RGB32) { + if (config->rt_format & VA_RT_FORMAT_RGB32) { for (j = 0; j < ARRAY_SIZE(vpp_surface_formats); ++j) { attribs[i].type = VASurfaceAttribPixelFormat; attribs[i].value.type = VAGenericValueTypeInteger; @@ -427,7 +427,8 @@ vlVaQuerySurfaceAttributes(VADriverContextP ctx, VAConfigID config_id, attribs[i].value.value.i = PipeFormatToVaFourcc(vpp_surface_formats[j]); i++; } - } else if (config->rt_format == VA_RT_FORMAT_YUV420) { + } + if (config->rt_format & VA_RT_FORMAT_YUV420) { attribs[i].type = VASurfaceAttribPixelFormat; attribs[i].value.type = VAGenericValueTypeInteger; attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; |