Delete LossBasedBweV1 since LossBasedBweV2 is per default enabled
Bug: webrtc:42222865
Change-Id: If0ca88d91473c15b2a704aca6eb96dd5c92cf3d5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/395960
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Diep Bui <diepbp@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44869}
diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index ec83ca5..3f2fdbe 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -562,9 +562,6 @@
FieldTrial('WebRTC-Bwe-LossBasedBweV2',
42222865,
date(2024, 4, 1)),
- FieldTrial('WebRTC-Bwe-LossBasedControl',
- NO_BUG,
- date(2024, 4, 1)),
FieldTrial('WebRTC-Bwe-MaxRttLimit',
42234928,
INDEFINITE),
@@ -911,7 +908,7 @@
]) # yapf: disable
POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \
- '8e2640561e5ff33824da8ecf4f37b34eeaad92f3'
+ '6c73fd457a392cb370b8b8f5ec6f6215779fba01'
REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
POLICY_EXEMPT_FIELD_TRIALS)
diff --git a/modules/congestion_controller/goog_cc/BUILD.gn b/modules/congestion_controller/goog_cc/BUILD.gn
index 77976b7..e1cd1c4 100644
--- a/modules/congestion_controller/goog_cc/BUILD.gn
+++ b/modules/congestion_controller/goog_cc/BUILD.gn
@@ -143,31 +143,12 @@
]
}
-rtc_library("loss_based_bwe_v1") {
- sources = [
- "loss_based_bandwidth_estimation.cc",
- "loss_based_bandwidth_estimation.h",
- ]
- deps = [
- "../../../api:field_trials_view",
- "../../../api/transport:network_control",
- "../../../api/units:data_rate",
- "../../../api/units:time_delta",
- "../../../api/units:timestamp",
- "../../../rtc_base:checks",
- "../../../rtc_base/experiments:field_trial_parser",
- "//third_party/abseil-cpp/absl/strings",
- "//third_party/abseil-cpp/absl/strings:string_view",
- ]
-}
-
rtc_library("send_side_bwe") {
sources = [
"send_side_bandwidth_estimation.cc",
"send_side_bandwidth_estimation.h",
]
deps = [
- ":loss_based_bwe_v1",
":loss_based_bwe_v2",
"../../../api:field_trials_view",
"../../../api/rtc_event_log",
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
index 53a171c..ea44c34 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
@@ -652,17 +652,9 @@
EXPECT_GE(min_stable_target / max_stable_target, min_target / max_target);
}
-TEST(GoogCcScenario, LossBasedControlUpdatesTargetRateBasedOnLinkCapacity) {
- // TODO(srte): Should the behavior be unaffected at low loss rates?
- UpdatesTargetRateBasedOnLinkCapacity(
- /*test_name=*/"_loss_based",
- /*field_trials=*/"WebRTC-Bwe-LossBasedControl/Enabled/");
-}
-
TEST(GoogCcScenario, LossBasedControlDoesModestBackoffToHighLoss) {
Scenario s("googcc_unit/high_loss_channel", false);
CallClientConfig config;
- config.field_trials.Set("WebRTC-Bwe-LossBasedControl", "Enabled");
config.transport.rates.min_rate = DataRate::KilobitsPerSec(10);
config.transport.rates.max_rate = DataRate::KilobitsPerSec(1500);
config.transport.rates.start_rate = DataRate::KilobitsPerSec(300);
@@ -677,7 +669,6 @@
auto* client = CreateVideoSendingClient(&s, config, {send_net}, {ret_net});
s.RunFor(TimeDelta::Seconds(120));
- // Without LossBasedControl trial, bandwidth drops to ~10 kbps.
EXPECT_GT(client->target_rate().kbps(), 100);
}
diff --git a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
deleted file mode 100644
index 08bd4b3..0000000
--- a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h"
-
-#include <algorithm>
-#include <cmath>
-#include <vector>
-
-#include "absl/strings/match.h"
-#include "absl/strings/string_view.h"
-#include "api/field_trials_view.h"
-#include "api/transport/network_types.h"
-#include "api/units/data_rate.h"
-#include "api/units/time_delta.h"
-#include "api/units/timestamp.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/experiments/field_trial_parser.h"
-
-namespace webrtc {
-namespace {
-const char kBweLossBasedControl[] = "WebRTC-Bwe-LossBasedControl";
-
-// Expecting RTCP feedback to be sent with roughly 1s intervals, a 5s gap
-// indicates a channel outage.
-constexpr TimeDelta kMaxRtcpFeedbackInterval = TimeDelta::Millis(5000);
-
-// Increase slower when RTT is high.
-double GetIncreaseFactor(const LossBasedControlConfig& config, TimeDelta rtt) {
- // Clamp the RTT
- if (rtt < config.increase_low_rtt) {
- rtt = config.increase_low_rtt;
- } else if (rtt > config.increase_high_rtt) {
- rtt = config.increase_high_rtt;
- }
- auto rtt_range = config.increase_high_rtt.Get() - config.increase_low_rtt;
- if (rtt_range <= TimeDelta::Zero()) {
- RTC_DCHECK_NOTREACHED(); // Only on misconfiguration.
- return config.min_increase_factor;
- }
- auto rtt_offset = rtt - config.increase_low_rtt;
- auto relative_offset = std::max(0.0, std::min(rtt_offset / rtt_range, 1.0));
- auto factor_range = config.max_increase_factor - config.min_increase_factor;
- return config.min_increase_factor + (1 - relative_offset) * factor_range;
-}
-
-double LossFromBitrate(DataRate bitrate,
- DataRate loss_bandwidth_balance,
- double exponent) {
- if (loss_bandwidth_balance >= bitrate)
- return 1.0;
- return pow(loss_bandwidth_balance / bitrate, exponent);
-}
-
-DataRate BitrateFromLoss(double loss,
- DataRate loss_bandwidth_balance,
- double exponent) {
- if (exponent <= 0) {
- RTC_DCHECK_NOTREACHED();
- return DataRate::Infinity();
- }
- if (loss < 1e-5)
- return DataRate::Infinity();
- return loss_bandwidth_balance * pow(loss, -1.0 / exponent);
-}
-
-double ExponentialUpdate(TimeDelta window, TimeDelta interval) {
- // Use the convention that exponential window length (which is really
- // infinite) is the time it takes to dampen to 1/e.
- if (window <= TimeDelta::Zero()) {
- RTC_DCHECK_NOTREACHED();
- return 1.0f;
- }
- return 1.0f - exp(interval / window * -1.0);
-}
-
-bool IsEnabled(const FieldTrialsView& key_value_config,
- absl::string_view name) {
- return absl::StartsWith(key_value_config.Lookup(name), "Enabled");
-}
-
-} // namespace
-
-LossBasedControlConfig::LossBasedControlConfig(
- const FieldTrialsView* key_value_config)
- : enabled(IsEnabled(*key_value_config, kBweLossBasedControl)),
- min_increase_factor("min_incr", 1.02),
- max_increase_factor("max_incr", 1.08),
- increase_low_rtt("incr_low_rtt", TimeDelta::Millis(200)),
- increase_high_rtt("incr_high_rtt", TimeDelta::Millis(800)),
- decrease_factor("decr", 0.99),
- loss_window("loss_win", TimeDelta::Millis(800)),
- loss_max_window("loss_max_win", TimeDelta::Millis(800)),
- acknowledged_rate_max_window("ackrate_max_win", TimeDelta::Millis(800)),
- increase_offset("incr_offset", DataRate::BitsPerSec(1000)),
- loss_bandwidth_balance_increase("balance_incr",
- DataRate::KilobitsPerSec(0.5)),
- loss_bandwidth_balance_decrease("balance_decr",
- DataRate::KilobitsPerSec(4)),
- loss_bandwidth_balance_reset("balance_reset",
- DataRate::KilobitsPerSec(0.1)),
- loss_bandwidth_balance_exponent("exponent", 0.5),
- allow_resets("resets", false),
- decrease_interval("decr_intvl", TimeDelta::Millis(300)),
- loss_report_timeout("timeout", TimeDelta::Millis(6000)) {
- ParseFieldTrial(
- {&min_increase_factor, &max_increase_factor, &increase_low_rtt,
- &increase_high_rtt, &decrease_factor, &loss_window, &loss_max_window,
- &acknowledged_rate_max_window, &increase_offset,
- &loss_bandwidth_balance_increase, &loss_bandwidth_balance_decrease,
- &loss_bandwidth_balance_reset, &loss_bandwidth_balance_exponent,
- &allow_resets, &decrease_interval, &loss_report_timeout},
- key_value_config->Lookup(kBweLossBasedControl));
-}
-LossBasedControlConfig::LossBasedControlConfig(const LossBasedControlConfig&) =
- default;
-LossBasedControlConfig::~LossBasedControlConfig() = default;
-
-LossBasedBandwidthEstimation::LossBasedBandwidthEstimation(
- const FieldTrialsView* key_value_config)
- : config_(key_value_config),
- average_loss_(0),
- average_loss_max_(0),
- loss_based_bitrate_(DataRate::Zero()),
- acknowledged_bitrate_max_(DataRate::Zero()),
- acknowledged_bitrate_last_update_(Timestamp::MinusInfinity()),
- time_last_decrease_(Timestamp::MinusInfinity()),
- has_decreased_since_last_loss_report_(false),
- last_loss_packet_report_(Timestamp::MinusInfinity()),
- last_loss_ratio_(0) {}
-
-void LossBasedBandwidthEstimation::UpdateLossStatistics(
- const std::vector<PacketResult>& packet_results,
- Timestamp at_time) {
- if (packet_results.empty()) {
- RTC_DCHECK_NOTREACHED();
- return;
- }
- int loss_count = 0;
- for (const auto& pkt : packet_results) {
- loss_count += !pkt.IsReceived() ? 1 : 0;
- }
- last_loss_ratio_ = static_cast<double>(loss_count) / packet_results.size();
- const TimeDelta time_passed = last_loss_packet_report_.IsFinite()
- ? at_time - last_loss_packet_report_
- : TimeDelta::Seconds(1);
- last_loss_packet_report_ = at_time;
- has_decreased_since_last_loss_report_ = false;
-
- average_loss_ += ExponentialUpdate(config_.loss_window, time_passed) *
- (last_loss_ratio_ - average_loss_);
- if (average_loss_ > average_loss_max_) {
- average_loss_max_ = average_loss_;
- } else {
- average_loss_max_ +=
- ExponentialUpdate(config_.loss_max_window, time_passed) *
- (average_loss_ - average_loss_max_);
- }
-}
-
-void LossBasedBandwidthEstimation::UpdateAcknowledgedBitrate(
- DataRate acknowledged_bitrate,
- Timestamp at_time) {
- const TimeDelta time_passed =
- acknowledged_bitrate_last_update_.IsFinite()
- ? at_time - acknowledged_bitrate_last_update_
- : TimeDelta::Seconds(1);
- acknowledged_bitrate_last_update_ = at_time;
- if (acknowledged_bitrate > acknowledged_bitrate_max_) {
- acknowledged_bitrate_max_ = acknowledged_bitrate;
- } else {
- acknowledged_bitrate_max_ -=
- ExponentialUpdate(config_.acknowledged_rate_max_window, time_passed) *
- (acknowledged_bitrate_max_ - acknowledged_bitrate);
- }
-}
-
-DataRate LossBasedBandwidthEstimation::Update(Timestamp at_time,
- DataRate min_bitrate,
- DataRate wanted_bitrate,
- TimeDelta last_round_trip_time) {
- if (loss_based_bitrate_.IsZero()) {
- loss_based_bitrate_ = wanted_bitrate;
- }
-
- // Only increase if loss has been low for some time.
- const double loss_estimate_for_increase = average_loss_max_;
- // Avoid multiple decreases from averaging over one loss spike.
- const double loss_estimate_for_decrease =
- std::min(average_loss_, last_loss_ratio_);
- const bool allow_decrease =
- !has_decreased_since_last_loss_report_ &&
- (at_time - time_last_decrease_ >=
- last_round_trip_time + config_.decrease_interval);
- // If packet lost reports are too old, dont increase bitrate.
- const bool loss_report_valid =
- at_time - last_loss_packet_report_ < 1.2 * kMaxRtcpFeedbackInterval;
-
- if (loss_report_valid && config_.allow_resets &&
- loss_estimate_for_increase < loss_reset_threshold()) {
- loss_based_bitrate_ = wanted_bitrate;
- } else if (loss_report_valid &&
- loss_estimate_for_increase < loss_increase_threshold()) {
- // Increase bitrate by RTT-adaptive ratio.
- DataRate new_increased_bitrate =
- min_bitrate * GetIncreaseFactor(config_, last_round_trip_time) +
- config_.increase_offset;
- // The bitrate that would make the loss "just high enough".
- const DataRate new_increased_bitrate_cap = BitrateFromLoss(
- loss_estimate_for_increase, config_.loss_bandwidth_balance_increase,
- config_.loss_bandwidth_balance_exponent);
- new_increased_bitrate =
- std::min(new_increased_bitrate, new_increased_bitrate_cap);
- loss_based_bitrate_ = std::max(new_increased_bitrate, loss_based_bitrate_);
- } else if (loss_estimate_for_decrease > loss_decrease_threshold() &&
- allow_decrease) {
- // The bitrate that would make the loss "just acceptable".
- const DataRate new_decreased_bitrate_floor = BitrateFromLoss(
- loss_estimate_for_decrease, config_.loss_bandwidth_balance_decrease,
- config_.loss_bandwidth_balance_exponent);
- DataRate new_decreased_bitrate =
- std::max(decreased_bitrate(), new_decreased_bitrate_floor);
- if (new_decreased_bitrate < loss_based_bitrate_) {
- time_last_decrease_ = at_time;
- has_decreased_since_last_loss_report_ = true;
- loss_based_bitrate_ = new_decreased_bitrate;
- }
- }
- return loss_based_bitrate_;
-}
-
-void LossBasedBandwidthEstimation::Initialize(DataRate bitrate) {
- loss_based_bitrate_ = bitrate;
- average_loss_ = 0;
- average_loss_max_ = 0;
-}
-
-double LossBasedBandwidthEstimation::loss_reset_threshold() const {
- return LossFromBitrate(loss_based_bitrate_,
- config_.loss_bandwidth_balance_reset,
- config_.loss_bandwidth_balance_exponent);
-}
-
-double LossBasedBandwidthEstimation::loss_increase_threshold() const {
- return LossFromBitrate(loss_based_bitrate_,
- config_.loss_bandwidth_balance_increase,
- config_.loss_bandwidth_balance_exponent);
-}
-
-double LossBasedBandwidthEstimation::loss_decrease_threshold() const {
- return LossFromBitrate(loss_based_bitrate_,
- config_.loss_bandwidth_balance_decrease,
- config_.loss_bandwidth_balance_exponent);
-}
-
-DataRate LossBasedBandwidthEstimation::decreased_bitrate() const {
- return config_.decrease_factor * acknowledged_bitrate_max_;
-}
-} // namespace webrtc
diff --git a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h
deleted file mode 100644
index 9f69cab..0000000
--- a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef MODULES_CONGESTION_CONTROLLER_GOOG_CC_LOSS_BASED_BANDWIDTH_ESTIMATION_H_
-#define MODULES_CONGESTION_CONTROLLER_GOOG_CC_LOSS_BASED_BANDWIDTH_ESTIMATION_H_
-
-#include <vector>
-
-#include "api/field_trials_view.h"
-#include "api/transport/network_types.h"
-#include "api/units/data_rate.h"
-#include "api/units/time_delta.h"
-#include "api/units/timestamp.h"
-#include "rtc_base/experiments/field_trial_parser.h"
-
-namespace webrtc {
-
-struct LossBasedControlConfig {
- explicit LossBasedControlConfig(const FieldTrialsView* key_value_config);
- LossBasedControlConfig(const LossBasedControlConfig&);
- LossBasedControlConfig& operator=(const LossBasedControlConfig&) = default;
- ~LossBasedControlConfig();
- bool enabled;
- FieldTrialParameter<double> min_increase_factor;
- FieldTrialParameter<double> max_increase_factor;
- FieldTrialParameter<TimeDelta> increase_low_rtt;
- FieldTrialParameter<TimeDelta> increase_high_rtt;
- FieldTrialParameter<double> decrease_factor;
- FieldTrialParameter<TimeDelta> loss_window;
- FieldTrialParameter<TimeDelta> loss_max_window;
- FieldTrialParameter<TimeDelta> acknowledged_rate_max_window;
- FieldTrialParameter<DataRate> increase_offset;
- FieldTrialParameter<DataRate> loss_bandwidth_balance_increase;
- FieldTrialParameter<DataRate> loss_bandwidth_balance_decrease;
- FieldTrialParameter<DataRate> loss_bandwidth_balance_reset;
- FieldTrialParameter<double> loss_bandwidth_balance_exponent;
- FieldTrialParameter<bool> allow_resets;
- FieldTrialParameter<TimeDelta> decrease_interval;
- FieldTrialParameter<TimeDelta> loss_report_timeout;
-};
-
-// Estimates an upper BWE limit based on loss.
-// It requires knowledge about lost packets and acknowledged bitrate.
-// Ie, this class require transport feedback.
-class LossBasedBandwidthEstimation {
- public:
- explicit LossBasedBandwidthEstimation(
- const FieldTrialsView* key_value_config);
- // Returns the new estimate.
- DataRate Update(Timestamp at_time,
- DataRate min_bitrate,
- DataRate wanted_bitrate,
- TimeDelta last_round_trip_time);
- void UpdateAcknowledgedBitrate(DataRate acknowledged_bitrate,
- Timestamp at_time);
- void Initialize(DataRate bitrate);
- bool Enabled() const { return config_.enabled; }
- // Returns true if LossBasedBandwidthEstimation is enabled and have
- // received loss statistics. Ie, this class require transport feedback.
- bool InUse() const {
- return Enabled() && last_loss_packet_report_.IsFinite();
- }
- void UpdateLossStatistics(const std::vector<PacketResult>& packet_results,
- Timestamp at_time);
- DataRate GetEstimate() const { return loss_based_bitrate_; }
-
- private:
- friend class GoogCcStatePrinter;
- void Reset(DataRate bitrate);
- double loss_increase_threshold() const;
- double loss_decrease_threshold() const;
- double loss_reset_threshold() const;
-
- DataRate decreased_bitrate() const;
-
- const LossBasedControlConfig config_;
- double average_loss_;
- double average_loss_max_;
- DataRate loss_based_bitrate_;
- DataRate acknowledged_bitrate_max_;
- Timestamp acknowledged_bitrate_last_update_;
- Timestamp time_last_decrease_;
- bool has_decreased_since_last_loss_report_;
- Timestamp last_loss_packet_report_;
- double last_loss_ratio_;
-};
-
-} // namespace webrtc
-
-#endif // MODULES_CONGESTION_CONTROLLER_GOOG_CC_LOSS_BASED_BANDWIDTH_ESTIMATION_H_
diff --git a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
index eccad2b..d599958 100644
--- a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
+++ b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
@@ -223,7 +223,6 @@
low_loss_threshold_(kDefaultLowLossThreshold),
high_loss_threshold_(kDefaultHighLossThreshold),
bitrate_threshold_(kDefaultBitrateThreshold),
- loss_based_bandwidth_estimator_v1_(key_value_config),
loss_based_bandwidth_estimator_v2_(new LossBasedBweV2(key_value_config)),
loss_based_state_(LossBasedState::kDelayBasedEstimate),
disable_receiver_limit_caps_only_("Disabled") {
@@ -361,10 +360,6 @@
if (!acknowledged_rate.has_value()) {
return;
}
- if (LossBasedBandwidthEstimatorV1Enabled()) {
- loss_based_bandwidth_estimator_v1_.UpdateAcknowledgedBitrate(
- *acknowledged_rate, at_time);
- }
if (LossBasedBandwidthEstimatorV2Enabled()) {
loss_based_bandwidth_estimator_v2_->SetAcknowledgedBitrate(
*acknowledged_rate);
@@ -376,10 +371,6 @@
BandwidthUsage /* delay_detector_state */,
std::optional<DataRate> /* probe_bitrate */,
bool in_alr) {
- if (LossBasedBandwidthEstimatorV1Enabled()) {
- loss_based_bandwidth_estimator_v1_.UpdateLossStatistics(
- report.packet_feedbacks, report.feedback_time);
- }
if (LossBasedBandwidthEstimatorV2Enabled()) {
loss_based_bandwidth_estimator_v2_->UpdateBandwidthEstimate(
report.packet_feedbacks, delay_based_limit_, in_alr);
@@ -493,20 +484,12 @@
// receiver limit here.
if (receiver_limit_.IsFinite())
new_bitrate = std::max(receiver_limit_, new_bitrate);
- if (delay_based_limit_.IsFinite())
+ if (delay_based_limit_.IsFinite()) {
new_bitrate = std::max(delay_based_limit_, new_bitrate);
- if (LossBasedBandwidthEstimatorV1Enabled()) {
- loss_based_bandwidth_estimator_v1_.Initialize(new_bitrate);
}
-
if (new_bitrate != current_target_) {
min_bitrate_history_.clear();
- if (LossBasedBandwidthEstimatorV1Enabled()) {
- min_bitrate_history_.push_back(std::make_pair(at_time, new_bitrate));
- } else {
- min_bitrate_history_.push_back(
- std::make_pair(at_time, current_target_));
- }
+ min_bitrate_history_.push_back(std::make_pair(at_time, current_target_));
UpdateTargetBitrate(new_bitrate, at_time);
return;
}
@@ -519,14 +502,6 @@
return;
}
- if (LossBasedBandwidthEstimatorV1ReadyForUse()) {
- DataRate new_bitrate = loss_based_bandwidth_estimator_v1_.Update(
- at_time, min_bitrate_history_.front().second, delay_based_limit_,
- last_round_trip_time_);
- UpdateTargetBitrate(new_bitrate, at_time);
- return;
- }
-
if (LossBasedBandwidthEstimatorV2ReadyForUse()) {
LossBasedBweV2::Result result =
loss_based_bandwidth_estimator_v2_->GetLossBasedResult();
@@ -673,17 +648,6 @@
UpdateTargetBitrate(current_target_, at_time);
}
-bool SendSideBandwidthEstimation::LossBasedBandwidthEstimatorV1Enabled() const {
- return loss_based_bandwidth_estimator_v1_.Enabled() &&
- !LossBasedBandwidthEstimatorV2Enabled();
-}
-
-bool SendSideBandwidthEstimation::LossBasedBandwidthEstimatorV1ReadyForUse()
- const {
- return LossBasedBandwidthEstimatorV1Enabled() &&
- loss_based_bandwidth_estimator_v1_.InUse();
-}
-
bool SendSideBandwidthEstimation::LossBasedBandwidthEstimatorV2Enabled() const {
return loss_based_bandwidth_estimator_v2_->IsEnabled();
}
diff --git a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h
index 5fa8ae9..6c701e0 100644
--- a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h
+++ b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.h
@@ -27,7 +27,6 @@
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
-#include "modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.h"
#include "modules/congestion_controller/goog_cc/loss_based_bwe_v2.h"
#include "rtc_base/experiments/field_trial_parser.h"
@@ -161,10 +160,7 @@
// should be cleaned up.
void ApplyTargetLimits(Timestamp at_time);
- bool LossBasedBandwidthEstimatorV1Enabled() const;
bool LossBasedBandwidthEstimatorV2Enabled() const;
-
- bool LossBasedBandwidthEstimatorV1ReadyForUse() const;
bool LossBasedBandwidthEstimatorV2ReadyForUse() const;
const FieldTrialsView* key_value_config_;
@@ -208,7 +204,6 @@
float low_loss_threshold_;
float high_loss_threshold_;
DataRate bitrate_threshold_;
- LossBasedBandwidthEstimation loss_based_bandwidth_estimator_v1_;
std::unique_ptr<LossBasedBweV2> loss_based_bandwidth_estimator_v2_;
LossBasedState loss_based_state_;
FieldTrialFlag disable_receiver_limit_caps_only_;
diff --git a/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc b/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc
index cef4bf4..6e5bbb3 100644
--- a/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc
+++ b/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc
@@ -99,10 +99,6 @@
auto acknowledged_rate = [this] {
return controller_->acknowledged_bitrate_estimator_->bitrate();
};
- auto loss_cont = [&] {
- return &controller_->bandwidth_estimation_
- ->loss_based_bandwidth_estimator_v1_;
- };
std::deque<FieldLogger*> loggers({
Log("time", [this] { return target_.at_time; }),
Log("rtt", [this] { return target_.network_estimate.round_trip_time; }),
@@ -127,17 +123,6 @@
Log("est_pre_buffer", [this] { return est_.pre_link_buffer_delay; }),
Log("est_post_buffer", [this] { return est_.post_link_buffer_delay; }),
Log("est_propagation", [this] { return est_.propagation_delay; }),
- Log("loss_ratio", [=] { return loss_cont()->last_loss_ratio_; }),
- Log("loss_average", [=] { return loss_cont()->average_loss_; }),
- Log("loss_average_max", [=] { return loss_cont()->average_loss_max_; }),
- Log("loss_thres_inc",
- [=] { return loss_cont()->loss_increase_threshold(); }),
- Log("loss_thres_dec",
- [=] { return loss_cont()->loss_decrease_threshold(); }),
- Log("loss_dec_rate", [=] { return loss_cont()->decreased_bitrate(); }),
- Log("loss_based_rate", [=] { return loss_cont()->loss_based_bitrate_; }),
- Log("loss_ack_rate",
- [=] { return loss_cont()->acknowledged_bitrate_max_; }),
Log("data_window", [this] { return controller_->current_data_window_; }),
Log("pushback_target",
[this] { return controller_->last_pushback_target_rate_; }),