diff options
Diffstat (limited to 'src/gallium/state_trackers/va/config.c')
-rw-r--r-- | src/gallium/state_trackers/va/config.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/va/config.c b/src/gallium/state_trackers/va/config.c index 7742087e999..889ce38e676 100644 --- a/src/gallium/state_trackers/va/config.c +++ b/src/gallium/state_trackers/va/config.c @@ -202,6 +202,17 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin config->profile = p; + for (int i = 0; i <num_attribs ; i++) { + if (attrib_list[i].type == VAConfigAttribRateControl) { + if (attrib_list[i].value == VA_RC_CBR) + config->rc = PIPE_H264_ENC_RATE_CONTROL_METHOD_CONSTANT; + else if (attrib_list[i].value == VA_RC_VBR) + config->rc = PIPE_H264_ENC_RATE_CONTROL_METHOD_VARIABLE; + else + config->rc = PIPE_H264_ENC_RATE_CONTROL_METHOD_DISABLE; + } + } + pipe_mutex_lock(drv->mutex); *config_id = handle_table_add(drv->htab, config); pipe_mutex_unlock(drv->mutex); |