summaryrefslogtreecommitdiff
path: root/src/i965_encoder.c
diff options
context:
space:
mode:
authorpeng.chen <peng.c.chen@intel.com>2016-11-21 15:41:37 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2016-11-30 12:42:56 +0800
commit0e99d2830e90a1b333025275b2e88ac47ca96ebf (patch)
tree0bc53960909b24831bd89282437ce9b3acc93b93 /src/i965_encoder.c
parentf7e3269f64d4bebeaa0f44ac8da6bb82b4aeba2b (diff)
downloadlibva-intel-driver-0e99d2830e90a1b333025275b2e88ac47ca96ebf.tar.gz
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 <peng.c.chen@intel.com> Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Diffstat (limited to 'src/i965_encoder.c')
-rw-r--r--src/i965_encoder.c14
1 files changed, 13 insertions, 1 deletions
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