diff --git a/.pick_status.json b/.pick_status.json index 8bb08a0e9b2..82f58b46caf 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -144,7 +144,7 @@ "description": "frontends/va: Set default rate control values once when creating encoder", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/frontends/va/picture_h264_enc.c b/src/gallium/frontends/va/picture_h264_enc.c index 28084c82cbb..a0767bdff43 100644 --- a/src/gallium/frontends/va/picture_h264_enc.c +++ b/src/gallium/frontends/va/picture_h264_enc.c @@ -187,6 +187,13 @@ vlVaHandleVAEncSequenceParameterBufferTypeH264(vlVaDriver *drv, vlVaContext *con return VA_STATUS_ERROR_ALLOCATION_FAILED; getEncParamPresetH264(context); + context->desc.h264enc.rate_ctrl[0].vbv_buffer_size = 20000000; + context->desc.h264enc.rate_ctrl[0].vbv_buf_lv = 48; + context->desc.h264enc.rate_ctrl[0].fill_data_enable = 1; + context->desc.h264enc.rate_ctrl[0].enforce_hrd = 1; + context->desc.h264enc.rate_ctrl[0].max_qp = 51; + context->desc.h264enc.rate_ctrl[0].min_qp = 0; + context->desc.h264enc.enable_vui = false; } context->desc.h264enc.intra_idr_period = @@ -359,13 +366,6 @@ vlVaHandleVAEncMiscParameterTypeHRDH264(vlVaContext *context, VAEncMiscParameter void getEncParamPresetH264(vlVaContext *context) { //rate control - context->desc.h264enc.rate_ctrl[0].vbv_buffer_size = 20000000; - context->desc.h264enc.rate_ctrl[0].vbv_buf_lv = 48; - context->desc.h264enc.rate_ctrl[0].fill_data_enable = 1; - context->desc.h264enc.rate_ctrl[0].enforce_hrd = 1; - context->desc.h264enc.rate_ctrl[0].max_qp = 51; - context->desc.h264enc.rate_ctrl[0].min_qp = 0; - context->desc.h264enc.enable_vui = false; if (context->desc.h264enc.rate_ctrl[0].frame_rate_num == 0 || context->desc.h264enc.rate_ctrl[0].frame_rate_den == 0) { context->desc.h264enc.rate_ctrl[0].frame_rate_num = 30; diff --git a/src/gallium/frontends/va/picture_hevc_enc.c b/src/gallium/frontends/va/picture_hevc_enc.c index f379007d1fc..a33c394e322 100644 --- a/src/gallium/frontends/va/picture_hevc_enc.c +++ b/src/gallium/frontends/va/picture_hevc_enc.c @@ -167,6 +167,12 @@ vlVaHandleVAEncSequenceParameterBufferTypeHEVC(vlVaDriver *drv, vlVaContext *con return VA_STATUS_ERROR_ALLOCATION_FAILED; getEncParamPresetH265(context); + context->desc.h265enc.rc.vbv_buffer_size = 20000000; + context->desc.h265enc.rc.vbv_buf_lv = 48; + context->desc.h265enc.rc.fill_data_enable = 1; + context->desc.h265enc.rc.enforce_hrd = 1; + context->desc.h265enc.rc.max_qp = 51; + context->desc.h265enc.rc.min_qp = 0; } context->desc.h265enc.seq.general_profile_idc = h265->general_profile_idc; @@ -429,13 +435,6 @@ vlVaHandleVAEncMiscParameterTypeHRDHEVC(vlVaContext *context, VAEncMiscParameter void getEncParamPresetH265(vlVaContext *context) { //rate control - context->desc.h265enc.rc.vbv_buffer_size = 20000000; - context->desc.h265enc.rc.vbv_buf_lv = 48; - context->desc.h265enc.rc.fill_data_enable = 1; - context->desc.h265enc.rc.enforce_hrd = 1; - context->desc.h265enc.rc.max_qp = 51; - context->desc.h265enc.rc.min_qp = 0; - if (context->desc.h265enc.rc.frame_rate_num == 0 || context->desc.h265enc.rc.frame_rate_den == 0) { context->desc.h265enc.rc.frame_rate_num = 30;