Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Unified Diff: webrtc/modules/congestion_controller/include/congestion_controller.h

Issue 2235373004: Probing: Add support for exponential startup probing (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@fix_probing2
Patch Set: Address comments and add unit tests Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);

Powered by Google App Engine
This is Rietveld 408576698