Add settings to turn off VP8 base layer qp limit
This quality boost means that we sometimes drop a _lot_ of frames in the base layer. It also interacts poorly with the bitrate adjuster since even if frames are dropped they are often over-sized. The setting still leaves the current behavior as default, but can be changed using the WebRTC-VideoRateControl field trial. Bug: webrtc:10155 Change-Id: I1a92ec69bab61b5148fe9d8bc391ac5ee1019367 Reviewed-on: https://webrtc-review.googlesource.com/c/122840 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26659}
This commit is contained in:
@ -122,12 +122,13 @@ RateControlSettings::RateControlSettings(
|
||||
kScreenshareHysteresisFieldTrialname,
|
||||
kDefaultScreenshareHysteresisFactor)),
|
||||
probe_max_allocation_("probe_max_allocation", true),
|
||||
bitrate_adjuster_("bitrate_adjuster", false) {
|
||||
ParseFieldTrial(
|
||||
{&congestion_window_, &congestion_window_pushback_, &pacing_factor_,
|
||||
&alr_probing_, &trust_vp8_, &trust_vp9_, &video_hysteresis_,
|
||||
&screenshare_hysteresis_, &probe_max_allocation_, &bitrate_adjuster_},
|
||||
key_value_config->Lookup("WebRTC-VideoRateControl"));
|
||||
bitrate_adjuster_("bitrate_adjuster", false),
|
||||
vp8_s0_boost_("vp8_s0_boost", true) {
|
||||
ParseFieldTrial({&congestion_window_, &congestion_window_pushback_,
|
||||
&pacing_factor_, &alr_probing_, &trust_vp8_, &trust_vp9_,
|
||||
&video_hysteresis_, &screenshare_hysteresis_,
|
||||
&probe_max_allocation_, &bitrate_adjuster_, &vp8_s0_boost_},
|
||||
key_value_config->Lookup("WebRTC-VideoRateControl"));
|
||||
}
|
||||
|
||||
RateControlSettings::~RateControlSettings() = default;
|
||||
@ -175,6 +176,10 @@ bool RateControlSettings::LibvpxVp8TrustedRateController() const {
|
||||
return trust_vp8_.Get();
|
||||
}
|
||||
|
||||
bool RateControlSettings::Vp8BoostBaseLayerQuality() const {
|
||||
return vp8_s0_boost_.Get();
|
||||
}
|
||||
|
||||
bool RateControlSettings::LibvpxVp9TrustedRateController() const {
|
||||
return trust_vp9_.Get();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user