ZeroHertzAdapterMode: slow down repeats on quality convergence.

The frame cadence adapter previously resulted in unconditional
frame repeating at max FPS. Change this to slow down to an idle
rate (1 Hz) when quality convergence in all configured spatial
layers has been achieved.

go/rtc-0hz-present

Bug: chromium:1255737
Change-Id: Ifa593dbf8a61aa29da20ac250da332734ae82791
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/241421
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35547}
This commit is contained in:
Markus Handell
2021-12-16 11:37:16 +01:00
committed by WebRTC LUCI CQ
parent 04696b35f4
commit 8d87c463d9
8 changed files with 531 additions and 89 deletions

View File

@ -1184,6 +1184,8 @@ int LibvpxVp8Encoder::GetEncodedPartitions(const VideoFrame& input_image,
libvpx_->codec_control(&encoders_[encoder_idx], VP8E_GET_LAST_QUANTIZER,
&qp_128);
encoded_images_[encoder_idx].qp_ = qp_128;
encoded_images_[encoder_idx].SetAtTargetQuality(
qp_128 <= variable_framerate_experiment_.steady_state_qp);
encoded_complete_callback_->OnEncodedImage(encoded_images_[encoder_idx],
&codec_specific);
const size_t steady_state_size = SteadyStateSize(