Index: webrtc/call/congestion_controller.h |
diff --git a/webrtc/call/congestion_controller.h b/webrtc/call/congestion_controller.h |
index a1c1b853ffa1aa2d71d88ca2ee2cc8b3663a4d74..ddc7abb97ec9ab4ef5cf23241ba0d7624ccb4bd7 100644 |
--- a/webrtc/call/congestion_controller.h |
+++ b/webrtc/call/congestion_controller.h |
@@ -12,6 +12,12 @@ |
#define WEBRTC_CALL_CONGESTION_CONTROLLER_H_ |
#include "webrtc/base/scoped_ptr.h" |
+#include "webrtc/base/thread_checker.h" |
+#include "webrtc/modules/include/module.h" |
+#include "webrtc/modules/include/module_common_types.h" |
+#include "webrtc/modules/pacing/packet_router.h" |
+#include "webrtc/modules/remote_bitrate_estimator/remote_estimator_proxy.h" |
+#include "webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.h" |
#include "webrtc/stream.h" |
namespace rtc { |
@@ -22,38 +28,30 @@ namespace webrtc { |
class BitrateController; |
class BitrateObserver; |
-class CallStats; |
class Clock; |
class PacedSender; |
-class PacketRouter; |
class ProcessThread; |
class RemoteBitrateEstimator; |
class RemoteBitrateObserver; |
-class RemoteEstimatorProxy; |
-class RtpRtcp; |
-class TransportFeedbackAdapter; |
class TransportFeedbackObserver; |
-class CongestionController { |
+class CongestionController : public CallStatsObserver, public Module { |
public: |
CongestionController(Clock* clock, |
- ProcessThread* process_thread, |
- CallStats* call_stats, |
BitrateObserver* bitrate_observer, |
RemoteBitrateObserver* remote_bitrate_observer); |
virtual ~CongestionController(); |
+ |
virtual void SetBweBitrates(int min_bitrate_bps, |
int start_bitrate_bps, |
int max_bitrate_bps); |
- |
virtual void SignalNetworkState(NetworkState state); |
- |
virtual BitrateController* GetBitrateController() const; |
virtual RemoteBitrateEstimator* GetRemoteBitrateEstimator( |
- bool send_side_bwe) const; |
+ bool send_side_bwe); |
virtual int64_t GetPacerQueuingDelayMs() const; |
- virtual PacedSender* pacer() const { return pacer_.get(); } |
- virtual PacketRouter* packet_router() const { return packet_router_.get(); } |
+ virtual PacedSender* pacer() { return pacer_.get(); } |
+ virtual PacketRouter* packet_router() { return &packet_router_; } |
virtual TransportFeedbackObserver* GetTransportFeedbackObserver(); |
virtual void UpdatePacerBitrate(int bitrate_kbps, |
@@ -62,21 +60,23 @@ class CongestionController { |
virtual void OnSentPacket(const rtc::SentPacket& sent_packet); |
- private: |
- Clock* const clock_; |
- rtc::scoped_ptr<PacketRouter> packet_router_; |
- rtc::scoped_ptr<PacedSender> pacer_; |
- rtc::scoped_ptr<RemoteBitrateEstimator> remote_bitrate_estimator_; |
- rtc::scoped_ptr<RemoteEstimatorProxy> remote_estimator_proxy_; |
- |
- // Registered at construct time and assumed to outlive this class. |
- ProcessThread* const process_thread_; |
- CallStats* const call_stats_; |
+ // Implements CallStatsObserver. |
+ void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override; |
- rtc::scoped_ptr<ProcessThread> pacer_thread_; |
+ // Implements Module. |
+ int64_t TimeUntilNextProcess() override; |
+ int32_t Process() override; |
- rtc::scoped_ptr<BitrateController> bitrate_controller_; |
- rtc::scoped_ptr<TransportFeedbackAdapter> transport_feedback_adapter_; |
+ private: |
+ Clock* const clock_; |
+ rtc::ThreadChecker config_thread_checker_; |
+ const rtc::scoped_ptr<PacedSender> pacer_; |
+ const rtc::scoped_ptr<RemoteBitrateEstimator> remote_bitrate_estimator_; |
+ const rtc::scoped_ptr<ProcessThread> pacer_thread_; |
+ const rtc::scoped_ptr<BitrateController> bitrate_controller_; |
+ PacketRouter packet_router_; |
+ RemoteEstimatorProxy remote_estimator_proxy_; |
+ TransportFeedbackAdapter transport_feedback_adapter_; |
int min_bitrate_bps_; |
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(CongestionController); |