From 0e99d2830e90a1b333025275b2e88ac47ca96ebf Mon Sep 17 00:00:00 2001 From: "peng.chen" Date: Mon, 21 Nov 2016 15:41:37 +0800 Subject: Save other bitrate control parameters in the common encoder context These parameters can be used for all codecs v2: Save mb_rate_control/target_percentage per layer too Signed-off-by: peng.chen Signed-off-by: Xiang, Haihao Reviewed-by: Zhao Yakui --- src/i965_encoder.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/i965_encoder.c') diff --git a/src/i965_encoder.c b/src/i965_encoder.c index 4aa3ee17..bca8ebde 100644 --- a/src/i965_encoder.c +++ b/src/i965_encoder.c @@ -393,11 +393,23 @@ intel_encoder_check_rate_control_parameter(VADriverContextP ctx, if (temporal_id >= encoder_context->layer.num_layers) return; - // TODO: for VBR + if (misc->rc_flags.bits.reset) + encoder_context->brc.need_reset = 1; + if (encoder_context->brc.bits_per_second[temporal_id] != misc->bits_per_second) { encoder_context->brc.bits_per_second[temporal_id] = misc->bits_per_second; encoder_context->brc.need_reset = 1; } + + if (encoder_context->brc.mb_rate_control[temporal_id] != misc->rc_flags.bits.mb_rate_control) { + encoder_context->brc.mb_rate_control[temporal_id] = misc->rc_flags.bits.mb_rate_control; + encoder_context->brc.need_reset = 1; + } + + if (encoder_context->brc.target_percentage[temporal_id] != misc->target_percentage) { + encoder_context->brc.target_percentage[temporal_id] = misc->target_percentage; + encoder_context->brc.need_reset = 1; + } } static void -- cgit v1.2.1