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 77203d6a8b9e6563070974585e4e2ee503935311..c8fc990e03b867c2b7e65e3995387b0d993d1176 100644 |
--- a/webrtc/modules/congestion_controller/send_side_congestion_controller.cc |
+++ b/webrtc/modules/congestion_controller/send_side_congestion_controller.cc |
@@ -98,27 +98,54 @@ SendSideCongestionController::SendSideCongestionController( |
Observer* observer, |
RtcEventLog* event_log, |
PacketRouter* packet_router) |
- : SendSideCongestionController( |
- clock, |
- observer, |
- event_log, |
- std::unique_ptr<PacedSender>( |
- new PacedSender(clock, packet_router, event_log))) {} |
+ : clock_(clock), |
+ observer_(observer), |
+ event_log_(event_log), |
+ owned_pacer_( |
+ rtc::MakeUnique<PacedSender>(clock, packet_router, event_log)), |
+ pacer_(owned_pacer_.get()), |
+ bitrate_controller_( |
+ BitrateController::CreateBitrateController(clock_, event_log)), |
+ acknowledged_bitrate_estimator_( |
+ rtc::MakeUnique<AcknowledgedBitrateEstimator>()), |
+ probe_controller_(new ProbeController(pacer_, clock_)), |
+ retransmission_rate_limiter_( |
+ new RateLimiter(clock, kRetransmitWindowSizeMs)), |
+ transport_feedback_adapter_(clock_), |
+ last_reported_bitrate_bps_(0), |
+ 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()), |
+ accepted_queue_ms_(kDefaultAcceptedQueueMs), |
+ was_in_alr_(0) { |
+ delay_based_bwe_->SetMinBitrate(min_bitrate_bps_); |
+ if (in_cwnd_experiment_ && |
+ !ReadCwndExperimentParameter(&accepted_queue_ms_)) { |
+ LOG(LS_WARNING) << "Failed to parse parameters for CwndExperiment " |
+ "from field trial string. Experiment disabled."; |
+ in_cwnd_experiment_ = false; |
+ } |
+} |
SendSideCongestionController::SendSideCongestionController( |
const Clock* clock, |
Observer* observer, |
RtcEventLog* event_log, |
- std::unique_ptr<PacedSender> pacer) |
+ PacedSender* pacer) |
: clock_(clock), |
observer_(observer), |
event_log_(event_log), |
- pacer_(std::move(pacer)), |
+ pacer_(pacer), |
bitrate_controller_( |
BitrateController::CreateBitrateController(clock_, event_log)), |
acknowledged_bitrate_estimator_( |
rtc::MakeUnique<AcknowledgedBitrateEstimator>()), |
- probe_controller_(new ProbeController(pacer_.get(), clock_)), |
+ probe_controller_(new ProbeController(pacer_, clock_)), |
retransmission_rate_limiter_( |
new RateLimiter(clock, kRetransmitWindowSizeMs)), |
transport_feedback_adapter_(clock_), |
@@ -229,12 +256,6 @@ void SendSideCongestionController::EnablePeriodicAlrProbing(bool enable) { |
probe_controller_->EnablePeriodicAlrProbing(enable); |
} |
-void SendSideCongestionController::SetAllocatedSendBitrateLimits( |
- int min_send_bitrate_bps, |
- int max_padding_bitrate_bps) { |
- pacer_->SetSendBitrateLimits(min_send_bitrate_bps, max_padding_bitrate_bps); |
-} |
- |
int64_t SendSideCongestionController::GetPacerQueuingDelayMs() const { |
return IsNetworkDown() ? 0 : pacer_->QueueInMs(); |
} |
@@ -243,10 +264,6 @@ int64_t SendSideCongestionController::GetFirstPacketTimeMs() const { |
return pacer_->FirstSentPacketTimeMs(); |
} |
-PacedSender* SendSideCongestionController::pacer() { |
- return pacer_.get(); |
-} |
- |
TransportFeedbackObserver* |
SendSideCongestionController::GetTransportFeedbackObserver() { |
return this; |