Implement stable rate support in SimulcastRateAllocator
Bug: webrtc:10126 Change-Id: I2ea8d27b0bd6f7ffd1ebbba451bd1ce1f2eee3d9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151121 Reviewed-by: Florent Castelli <orphis@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29097}
This commit is contained in:
@ -200,15 +200,11 @@ VideoBitrateAllocation SvcRateAllocator::Allocate(
|
||||
// Figure out how many spatial layers should be active.
|
||||
if (experiment_settings_.IsEnabled() &&
|
||||
parameters.stable_bitrate > DataRate::Zero()) {
|
||||
double hysteresis_factor = 1.0;
|
||||
double hysteresis_factor;
|
||||
if (codec_.mode == VideoCodecMode::kScreensharing) {
|
||||
hysteresis_factor =
|
||||
experiment_settings_.GetScreenshareHysteresisFactor().value_or(
|
||||
hysteresis_factor);
|
||||
hysteresis_factor = experiment_settings_.GetScreenshareHysteresisFactor();
|
||||
} else {
|
||||
hysteresis_factor =
|
||||
experiment_settings_.GetVideoHysteresisFactor().value_or(
|
||||
hysteresis_factor);
|
||||
hysteresis_factor = experiment_settings_.GetVideoHysteresisFactor();
|
||||
}
|
||||
|
||||
DataRate stable_rate =
|
||||
|
@ -283,7 +283,9 @@ TEST_P(SvcRateAllocatorTestParametrizedContentType, PaddingBitrate) {
|
||||
}
|
||||
|
||||
TEST_P(SvcRateAllocatorTestParametrizedContentType, StableBitrate) {
|
||||
ScopedFieldTrials field_trial("WebRTC-StableTargetRate/enabled:true/");
|
||||
ScopedFieldTrials field_trial(
|
||||
"WebRTC-StableTargetRate/enabled:true,video_hysteresis_factor:1.0,"
|
||||
"screenshare_hysteresis_factor:1.0/");
|
||||
|
||||
const VideoCodec codec = Configure(1280, 720, 3, 1, is_screen_sharing_);
|
||||
const auto start_rates = SvcRateAllocator::GetLayerStartBitrates(codec);
|
||||
|
Reference in New Issue
Block a user