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 60e692ccdfe46c4ea3e04b110a31448af0da7ea0..fb9197ff742dd415a32f1ca920ef5ef1840c30e1 100644 |
--- a/webrtc/modules/congestion_controller/send_side_congestion_controller.cc |
+++ b/webrtc/modules/congestion_controller/send_side_congestion_controller.cc |
@@ -15,16 +15,19 @@ |
#include <vector> |
#include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" |
-#include "webrtc/modules/congestion_controller/acknowledge_bitrate_estimator.h" |
+#include "webrtc/modules/congestion_controller/acknowledged_bitrate_estimator.h" |
#include "webrtc/modules/congestion_controller/probe_controller.h" |
+#include "webrtc/modules/pacing/alr_detector.h" |
#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h" |
#include "webrtc/rtc_base/checks.h" |
#include "webrtc/rtc_base/logging.h" |
#include "webrtc/rtc_base/ptr_util.h" |
#include "webrtc/rtc_base/rate_limiter.h" |
#include "webrtc/rtc_base/socket.h" |
+#include "webrtc/rtc_base/timeutils.h" |
namespace webrtc { |
+ |
namespace { |
static const int64_t kRetransmitWindowSizeMs = 500; |
@@ -99,7 +102,8 @@ SendSideCongestionController::SendSideCongestionController( |
last_reported_rtt_(0), |
network_state_(kNetworkUp), |
min_bitrate_bps_(congestion_controller::GetMinBitrateBps()), |
- delay_based_bwe_(new DelayBasedBwe(event_log_, clock_)) { |
+ delay_based_bwe_(new DelayBasedBwe(event_log_, clock_)), |
+ alr_state_(rtc::MakeUnique<AlrState>()) { |
delay_based_bwe_->SetMinBitrate(min_bitrate_bps_); |
} |
@@ -277,6 +281,12 @@ void SendSideCongestionController::OnTransportFeedback( |
std::vector<PacketFeedback> feedback_vector = ReceivedPacketFeedbackVector( |
transport_feedback_adapter_.GetTransportFeedbackVector()); |
SortPacketFeedbackVector(&feedback_vector); |
+ |
+ alr_state_->Update(pacer_->GetApplicationLimitedRegionStartTime()); |
+ if (alr_state_->HasChangedTo(AlrState::State::kNotInAlr)) { |
+ acknowledged_bitrate_estimator_->SetAlrEndedTimeMs(rtc::TimeMillis()); |
+ } |
+ |
acknowledged_bitrate_estimator_->IncomingPacketFeedbackVector( |
feedback_vector); |
DelayBasedBwe::Result result; |