Skip to content
This repository was archived by the owner on Jan 31, 2025. It is now read-only.

Commit 2bf45e9

Browse files
sreerenjbxhaihao
authored andcommitted
gen9_vp9_encoder: Ensure brc-reset irrespective of the frame type
If bitrate control is enabled (CBR & VBR), it is legal to have a bitrate change/reset even for non-key frame. Currently the bitrate change is not submitting to the gpu if it is an inter-prediction frame. This patch ensures that all internal structures are getting the updated bitrate values whenever user request. This patch is expected to fix the issue #473
1 parent b682a68 commit 2bf45e9

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/gen9_vp9_encoder.c

+8-1
Original file line numberDiff line numberDiff line change
@@ -3587,6 +3587,7 @@ gen9_encode_vp9_check_parameter(VADriverContextP ctx,
35873587
struct object_surface *obj_surface;
35883588
struct object_buffer *obj_buffer;
35893589
struct gen9_surface_vp9 *vp9_priv_surface;
3590+
bool need_brc_reset = false;
35903591

35913592
vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state;
35923593

@@ -3715,7 +3716,13 @@ gen9_encode_vp9_check_parameter(VADriverContextP ctx,
37153716
return VA_STATUS_ERROR_UNIMPLEMENTED;
37163717

37173718
if (vp9_state->brc_enabled) {
3718-
if (vp9_state->first_frame || vp9_state->picture_coding_type == KEY_FRAME) {
3719+
3720+
if (encoder_context->rate_control_mode == VA_RC_CBR)
3721+
need_brc_reset = vp9_state->target_bit_rate != encoder_context->brc.bits_per_second[0] ? true : false;
3722+
else if (encoder_context->rate_control_mode == VA_RC_VBR)
3723+
need_brc_reset = vp9_state->max_bit_rate != encoder_context->brc.bits_per_second[0] ? true : false;
3724+
3725+
if (vp9_state->first_frame || vp9_state->picture_coding_type == KEY_FRAME || need_brc_reset) {
37193726
vp9_state->brc_reset = encoder_context->brc.need_reset || vp9_state->first_frame;
37203727

37213728
if (!encoder_context->brc.framerate[0].num || !encoder_context->brc.framerate[0].den ||

0 commit comments

Comments
 (0)