Index: webrtc/modules/congestion_controller/include/congestion_controller.h |
diff --git a/webrtc/modules/congestion_controller/include/congestion_controller.h b/webrtc/modules/congestion_controller/include/congestion_controller.h |
index 57c2c64ff4eb396573e2e478eb2b1896e808443a..a9252f4fc6df1c2fc6f0e39a666bcfe24fe772a8 100644 |
--- a/webrtc/modules/congestion_controller/include/congestion_controller.h |
+++ b/webrtc/modules/congestion_controller/include/congestion_controller.h |
@@ -30,6 +30,7 @@ namespace webrtc { |
class BitrateController; |
class Clock; |
+class ProbeController; |
class ProcessThread; |
class RateLimiter; |
class RemoteBitrateEstimator; |
@@ -37,7 +38,9 @@ class RemoteBitrateObserver; |
class RtcEventLog; |
class TransportFeedbackObserver; |
-class CongestionController : public CallStatsObserver, public Module { |
+class CongestionController : public CallStatsObserver, |
+ public Module, |
+ public RemoteBitrateObserver { |
public: |
// Observer class for bitrate changes announced due to change in bandwidth |
// estimate or due to that the send pacer is full. Fraction loss and rtt is |
@@ -98,6 +101,13 @@ class CongestionController : public CallStatsObserver, public Module { |
virtual void OnSentPacket(const rtc::SentPacket& sent_packet); |
+ // Implements RemoteBitrateObserver. |
+ // Called by delay based estimator to report estimated bandwidth. |
+ void OnReceiveBitrateChanged(const std::vector<uint32_t>& ssrcs, |
+ uint32_t bitrate_bps) override; |
+ // Called by delay based estimator to report measured probing bitrate. |
+ void OnProbeBitrate(uint32_t bitrate_bps) override; |
+ |
// Implements CallStatsObserver. |
void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override; |
@@ -120,12 +130,12 @@ class CongestionController : public CallStatsObserver, public Module { |
const std::unique_ptr<PacedSender> pacer_; |
const std::unique_ptr<RemoteBitrateEstimator> remote_bitrate_estimator_; |
const std::unique_ptr<BitrateController> bitrate_controller_; |
+ const std::unique_ptr<ProbeController> probe_controller_; |
const std::unique_ptr<RateLimiter> retransmission_rate_limiter_; |
RemoteEstimatorProxy remote_estimator_proxy_; |
TransportFeedbackAdapter transport_feedback_adapter_; |
int min_bitrate_bps_; |
int max_bitrate_bps_; |
- bool initial_probing_triggered_; |
rtc::CriticalSection critsect_; |
uint32_t last_reported_bitrate_bps_ GUARDED_BY(critsect_); |
uint8_t last_reported_fraction_loss_ GUARDED_BY(critsect_); |