mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
st/va: Save surface chroma format in config
Both YUV420 and RGB32 configurations are supported, so we need to be able to distinguish which is being used. Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
8a931c83ba
commit
e7c7ef3625
2 changed files with 20 additions and 1 deletions
|
|
@ -185,6 +185,16 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin
|
|||
if (profile == VAProfileNone && entrypoint == VAEntrypointVideoProc) {
|
||||
config->entrypoint = VAEntrypointVideoProc;
|
||||
config->profile = PIPE_VIDEO_PROFILE_UNKNOWN;
|
||||
for (int i = 0; i < num_attribs; i++) {
|
||||
if (attrib_list[i].type == VAConfigAttribRTFormat) {
|
||||
if (attrib_list[i].value & (VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_RGB32)) {
|
||||
config->rt_format = attrib_list[i].value;
|
||||
} else {
|
||||
FREE(config);
|
||||
return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
|
||||
}
|
||||
}
|
||||
}
|
||||
pipe_mutex_lock(drv->mutex);
|
||||
*config_id = handle_table_add(drv->htab, config);
|
||||
pipe_mutex_unlock(drv->mutex);
|
||||
|
|
@ -236,6 +246,14 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin
|
|||
else
|
||||
config->rc = PIPE_H264_ENC_RATE_CONTROL_METHOD_DISABLE;
|
||||
}
|
||||
if (attrib_list[i].type == VAConfigAttribRTFormat) {
|
||||
if (attrib_list[i].value == VA_RT_FORMAT_YUV420) {
|
||||
config->rt_format = attrib_list[i].value;
|
||||
} else {
|
||||
FREE(config);
|
||||
return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pipe_mutex_lock(drv->mutex);
|
||||
|
|
@ -306,7 +324,7 @@ vlVaQueryConfigAttributes(VADriverContextP ctx, VAConfigID config_id, VAProfile
|
|||
|
||||
*num_attribs = 1;
|
||||
attrib_list[0].type = VAConfigAttribRTFormat;
|
||||
attrib_list[0].value = VA_RT_FORMAT_YUV420;
|
||||
attrib_list[0].value = config->rt_format;
|
||||
|
||||
return VA_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -250,6 +250,7 @@ typedef struct {
|
|||
enum pipe_video_profile profile;
|
||||
enum pipe_video_entrypoint entrypoint;
|
||||
enum pipe_h264_enc_rate_control_method rc;
|
||||
unsigned int rt_format;
|
||||
} vlVaConfig;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue