]> granicus.if.org Git - libvpx/commitdiff
vp8 rc: Clear system state at the end of calls
authorJerome Jiang <jianj@google.com>
Fri, 24 Sep 2021 21:56:00 +0000 (14:56 -0700)
committerJerome Jiang <jianj@google.com>
Fri, 24 Sep 2021 21:56:00 +0000 (14:56 -0700)
Clear system state at the end of rc calls to make sure the state is
consistent before and after

Change-Id: I59fe9c99485b1a8603c20db37961339b7575455f

vp8/vp8_ratectrl_rtc.cc

index 2098edaf970db905af2cba37dd87221c2d944e9e..2f23c5b1d9a7fa8caf1295e16e4bef4f2950d6f1 100644 (file)
@@ -168,6 +168,7 @@ void VP8RateControlRTC::UpdateRateControl(
   }
 
   vp8_new_framerate(cpi_, cpi_->framerate);
+  vpx_clear_system_state();
 }
 
 void VP8RateControlRTC::ComputeQP(const VP8FrameParamsQpRTC &frame_params) {
@@ -251,6 +252,7 @@ void VP8RateControlRTC::ComputeQP(const VP8FrameParamsQpRTC &frame_params) {
 
   q_ = vp8_regulate_q(cpi_, cpi_->this_frame_target);
   vp8_set_quantizer(cpi_, q_);
+  vpx_clear_system_state();
 }
 
 int VP8RateControlRTC::GetQP() const { return q_; }
@@ -340,5 +342,6 @@ void VP8RateControlRTC::PostEncodeUpdate(uint64_t encoded_frame_size) {
   cpi_->frames_since_key++;
 
   if (cpi_->oxcf.number_of_layers > 1) vp8_save_layer_context(cpi_);
+  vpx_clear_system_state();
 }
 }  // namespace libvpx