Default the behavior allowing fast rampup when REMB cap is lifted.

Bug: none
Change-Id: I60d5ed448b3cfb6591bd77b97f406a62e2fdd704
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/234523
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35164}
This commit is contained in:
Christoffer Rodbro 2021-10-07 15:50:43 +02:00 committed by WebRTC LUCI CQ
parent 5c3ae49b44
commit 40abb7d8ff
3 changed files with 10 additions and 10 deletions

View File

@ -879,16 +879,16 @@ TEST_F(GoogCcNetworkControllerTest, IsFairToTCP) {
EXPECT_LT(client->send_bandwidth().kbps(), 750); EXPECT_LT(client->send_bandwidth().kbps(), 750);
} }
TEST(GoogCcScenario, FastRampupOnRembCapLiftedWithFieldTrial) { TEST(GoogCcScenario, FastRampupOnRembCapLifted) {
ScopedFieldTrials trial("WebRTC-Bwe-ReceiverLimitCapsOnly/Enabled/");
DataRate final_estimate = DataRate final_estimate =
RunRembDipScenario("googcc_unit/fast_rampup_on_remb_cap_lifted"); RunRembDipScenario("googcc_unit/default_fast_rampup_on_remb_cap_lifted");
EXPECT_GT(final_estimate.kbps(), 1500); EXPECT_GT(final_estimate.kbps(), 1500);
} }
TEST(GoogCcScenario, SlowRampupOnRembCapLifted) { TEST(GoogCcScenario, SlowRampupOnRembCapLiftedWithFieldTrial) {
ScopedFieldTrials trial("WebRTC-Bwe-ReceiverLimitCapsOnly/Disabled/");
DataRate final_estimate = DataRate final_estimate =
RunRembDipScenario("googcc_unit/default_slow_rampup_on_remb_cap_lifted"); RunRembDipScenario("googcc_unit/legacy_slow_rampup_on_remb_cap_lifted");
EXPECT_LT(final_estimate.kbps(), 1000); EXPECT_LT(final_estimate.kbps(), 1000);
} }

View File

@ -229,7 +229,7 @@ SendSideBandwidthEstimation::SendSideBandwidthEstimation(
bitrate_threshold_(kDefaultBitrateThreshold), bitrate_threshold_(kDefaultBitrateThreshold),
loss_based_bandwidth_estimator_v1_(key_value_config), loss_based_bandwidth_estimator_v1_(key_value_config),
loss_based_bandwidth_estimator_v2_(key_value_config), loss_based_bandwidth_estimator_v2_(key_value_config),
receiver_limit_caps_only_("Enabled") { disable_receiver_limit_caps_only_("Disabled") {
RTC_DCHECK(event_log); RTC_DCHECK(event_log);
if (BweLossExperimentIsEnabled()) { if (BweLossExperimentIsEnabled()) {
uint32_t bitrate_threshold_kbps; uint32_t bitrate_threshold_kbps;
@ -242,7 +242,7 @@ SendSideBandwidthEstimation::SendSideBandwidthEstimation(
bitrate_threshold_ = DataRate::KilobitsPerSec(bitrate_threshold_kbps); bitrate_threshold_ = DataRate::KilobitsPerSec(bitrate_threshold_kbps);
} }
} }
ParseFieldTrial({&receiver_limit_caps_only_}, ParseFieldTrial({&disable_receiver_limit_caps_only_},
key_value_config->Lookup("WebRTC-Bwe-ReceiverLimitCapsOnly")); key_value_config->Lookup("WebRTC-Bwe-ReceiverLimitCapsOnly"));
} }
@ -313,7 +313,7 @@ int SendSideBandwidthEstimation::GetMinBitrate() const {
DataRate SendSideBandwidthEstimation::target_rate() const { DataRate SendSideBandwidthEstimation::target_rate() const {
DataRate target = current_target_; DataRate target = current_target_;
if (receiver_limit_caps_only_) if (!disable_receiver_limit_caps_only_)
target = std::min(target, receiver_limit_); target = std::min(target, receiver_limit_);
return std::max(min_bitrate_configured_, target); return std::max(min_bitrate_configured_, target);
} }
@ -609,7 +609,7 @@ void SendSideBandwidthEstimation::UpdateMinHistory(Timestamp at_time) {
DataRate SendSideBandwidthEstimation::GetUpperLimit() const { DataRate SendSideBandwidthEstimation::GetUpperLimit() const {
DataRate upper_limit = delay_based_limit_; DataRate upper_limit = delay_based_limit_;
if (!receiver_limit_caps_only_) if (disable_receiver_limit_caps_only_)
upper_limit = std::min(upper_limit, receiver_limit_); upper_limit = std::min(upper_limit, receiver_limit_);
return std::min(upper_limit, max_bitrate_configured_); return std::min(upper_limit, max_bitrate_configured_);
} }

View File

@ -198,7 +198,7 @@ class SendSideBandwidthEstimation {
DataRate bitrate_threshold_; DataRate bitrate_threshold_;
LossBasedBandwidthEstimation loss_based_bandwidth_estimator_v1_; LossBasedBandwidthEstimation loss_based_bandwidth_estimator_v1_;
LossBasedBweV2 loss_based_bandwidth_estimator_v2_; LossBasedBweV2 loss_based_bandwidth_estimator_v2_;
FieldTrialFlag receiver_limit_caps_only_; FieldTrialFlag disable_receiver_limit_caps_only_;
}; };
} // namespace webrtc } // namespace webrtc
#endif // MODULES_CONGESTION_CONTROLLER_GOOG_CC_SEND_SIDE_BANDWIDTH_ESTIMATION_H_ #endif // MODULES_CONGESTION_CONTROLLER_GOOG_CC_SEND_SIDE_BANDWIDTH_ESTIMATION_H_