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> |