| Index: webrtc/modules/congestion_controller/send_side_congestion_controller.cc
|
| diff --git a/webrtc/modules/congestion_controller/send_side_congestion_controller.cc b/webrtc/modules/congestion_controller/send_side_congestion_controller.cc
|
| index 751b54151700027dfd803c1973ae04da20b1af08..df9d762aa803b32e13d92e2a785c84d16e156022 100644
|
| --- a/webrtc/modules/congestion_controller/send_side_congestion_controller.cc
|
| +++ b/webrtc/modules/congestion_controller/send_side_congestion_controller.cc
|
| @@ -25,19 +25,9 @@
|
| #include "webrtc/rtc_base/rate_limiter.h"
|
| #include "webrtc/rtc_base/socket.h"
|
| #include "webrtc/rtc_base/timeutils.h"
|
| -#include "webrtc/system_wrappers/include/field_trial.h"
|
|
|
| namespace webrtc {
|
| namespace {
|
| -
|
| -const char kCwndExperiment[] = "WebRTC-CwndExperiment";
|
| -
|
| -bool CwndExperimentEnabled() {
|
| - std::string experiment_string =
|
| - webrtc::field_trial::FindFullName(kCwndExperiment);
|
| - // The experiment is enabled iff the field trial string begins with "Enabled".
|
| - return experiment_string.find("Enabled") == 0;
|
| -}
|
|
|
| static const int64_t kRetransmitWindowSizeMs = 500;
|
|
|
| @@ -110,11 +100,8 @@
|
| last_reported_fraction_loss_(0),
|
| last_reported_rtt_(0),
|
| network_state_(kNetworkUp),
|
| - pause_pacer_(false),
|
| - pacer_paused_(false),
|
| min_bitrate_bps_(congestion_controller::GetMinBitrateBps()),
|
| delay_based_bwe_(new DelayBasedBwe(event_log_, clock_)),
|
| - in_cwnd_experiment_(CwndExperimentEnabled()),
|
| was_in_alr_(0) {
|
| delay_based_bwe_->SetMinBitrate(min_bitrate_bps_);
|
| }
|
| @@ -232,9 +219,13 @@
|
| void SendSideCongestionController::SignalNetworkState(NetworkState state) {
|
| LOG(LS_INFO) << "SignalNetworkState "
|
| << (state == kNetworkUp ? "Up" : "Down");
|
| + if (state == kNetworkUp) {
|
| + pacer_->Resume();
|
| + } else {
|
| + pacer_->Pause();
|
| + }
|
| {
|
| rtc::CritScope cs(&network_state_lock_);
|
| - pause_pacer_ = state == kNetworkDown;
|
| network_state_ = state;
|
| }
|
| probe_controller_->OnNetworkStateChanged(state);
|
| @@ -255,7 +246,6 @@
|
| return;
|
| transport_feedback_adapter_.OnSentPacket(sent_packet.packet_id,
|
| sent_packet.send_time_ms);
|
| - LimitOutstandingBytes(transport_feedback_adapter_.GetOutstandingBytes());
|
| }
|
|
|
| void SendSideCongestionController::OnRttUpdate(int64_t avg_rtt_ms,
|
| @@ -269,20 +259,6 @@
|
| }
|
|
|
| void SendSideCongestionController::Process() {
|
| - bool pause_pacer;
|
| - // TODO(holmer): Once this class is running on a task queue we should
|
| - // replace this with a task instead.
|
| - {
|
| - rtc::CritScope lock(&network_state_lock_);
|
| - pause_pacer = pause_pacer_;
|
| - }
|
| - if (pause_pacer && !pacer_paused_) {
|
| - pacer_->Pause();
|
| - pacer_paused_ = true;
|
| - } else if (!pause_pacer && pacer_paused_) {
|
| - pacer_->Resume();
|
| - pacer_paused_ = false;
|
| - }
|
| bitrate_controller_->Process();
|
| probe_controller_->Process();
|
| MaybeTriggerOnNetworkChanged();
|
| @@ -329,35 +305,6 @@
|
| }
|
| if (result.recovered_from_overuse)
|
| probe_controller_->RequestProbe();
|
| - LimitOutstandingBytes(transport_feedback_adapter_.GetOutstandingBytes());
|
| -}
|
| -
|
| -void SendSideCongestionController::LimitOutstandingBytes(
|
| - size_t num_outstanding_bytes) {
|
| - if (!in_cwnd_experiment_)
|
| - return;
|
| - {
|
| - rtc::CritScope lock(&network_state_lock_);
|
| - rtc::Optional<int64_t> min_rtt_ms =
|
| - transport_feedback_adapter_.GetMinFeedbackLoopRtt();
|
| - // No valid RTT. Could be because send-side BWE isn't used, in which case
|
| - // we don't try to limit the outstanding packets.
|
| - if (!min_rtt_ms)
|
| - return;
|
| - const int64_t kAcceptedQueueMs = 250;
|
| - const size_t kMinCwndBytes = 2 * 1500;
|
| - size_t max_outstanding_bytes =
|
| - std::max<size_t>((*min_rtt_ms + kAcceptedQueueMs) *
|
| - last_reported_bitrate_bps_ / 1000 / 8,
|
| - kMinCwndBytes);
|
| - LOG(LS_INFO) << clock_->TimeInMilliseconds()
|
| - << " Outstanding bytes: " << num_outstanding_bytes
|
| - << " pacer queue: " << pacer_->QueueInMs()
|
| - << " max outstanding: " << max_outstanding_bytes;
|
| - LOG(LS_INFO) << "Feedback rtt: " << *min_rtt_ms
|
| - << " Bitrate: " << last_reported_bitrate_bps_;
|
| - pause_pacer_ = num_outstanding_bytes > max_outstanding_bytes;
|
| - }
|
| }
|
|
|
| std::vector<PacketFeedback>
|
|
|