Implementing interface with new SSCC
Makes the new task queue based congestion controller implement the
SendSideCongestionControllerInterface.
Bug: webrtc:8415
Change-Id: I3dfe11c2eb200bc8d85c83edf78d7fdd0129bbff
Reviewed-on: https://webrtc-review.googlesource.com/56781
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22235}
diff --git a/modules/congestion_controller/include/send_side_congestion_controller.h b/modules/congestion_controller/include/send_side_congestion_controller.h
index 8d80877..996d48d 100644
--- a/modules/congestion_controller/include/send_side_congestion_controller.h
+++ b/modules/congestion_controller/include/send_side_congestion_controller.h
@@ -81,7 +81,8 @@
// Deprecated: Use GetBandwidthObserver instead.
RTC_DEPRECATED virtual BitrateController* GetBitrateController() const;
- RtcpBandwidthObserver* GetBandwidthObserver() const override;
+ RtcpBandwidthObserver* GetBandwidthObserver() override;
+ RTC_DEPRECATED RtcpBandwidthObserver* GetBandwidthObserver() const;
bool AvailableBandwidth(uint32_t* bandwidth) const override;
int64_t GetPacerQueuingDelayMs() const override;
diff --git a/modules/congestion_controller/include/send_side_congestion_controller_interface.h b/modules/congestion_controller/include/send_side_congestion_controller_interface.h
index dfbae95..9fdec83 100644
--- a/modules/congestion_controller/include/send_side_congestion_controller_interface.h
+++ b/modules/congestion_controller/include/send_side_congestion_controller_interface.h
@@ -57,7 +57,7 @@
virtual void SignalNetworkState(NetworkState state) = 0;
virtual void SetTransportOverhead(
size_t transport_overhead_bytes_per_packet) = 0;
- virtual RtcpBandwidthObserver* GetBandwidthObserver() const = 0;
+ virtual RtcpBandwidthObserver* GetBandwidthObserver() = 0;
virtual bool AvailableBandwidth(uint32_t* bandwidth) const = 0;
virtual int64_t GetPacerQueuingDelayMs() const = 0;
virtual int64_t GetFirstPacketTimeMs() const = 0;
diff --git a/modules/congestion_controller/rtp/include/send_side_congestion_controller.h b/modules/congestion_controller/rtp/include/send_side_congestion_controller.h
index 259e10a..dc95c7c 100644
--- a/modules/congestion_controller/rtp/include/send_side_congestion_controller.h
+++ b/modules/congestion_controller/rtp/include/send_side_congestion_controller.h
@@ -18,7 +18,7 @@
#include <vector>
#include "common_types.h" // NOLINT(build/include)
-#include "modules/congestion_controller/include/network_changed_observer.h"
+#include "modules/congestion_controller/include/send_side_congestion_controller_interface.h"
#include "modules/congestion_controller/rtp/network_control/include/network_control.h"
#include "modules/congestion_controller/rtp/network_control/include/network_types.h"
#include "modules/congestion_controller/rtp/pacer_controller.h"
@@ -54,10 +54,9 @@
class ControlHandler;
} // namespace send_side_cc_internal
-class SendSideCongestionController : public CallStatsObserver,
- public Module,
- public TransportFeedbackObserver,
- public RtcpBandwidthObserver {
+class SendSideCongestionController
+ : public SendSideCongestionControllerInterface,
+ public RtcpBandwidthObserver {
public:
SendSideCongestionController(const Clock* clock,
NetworkChangedObserver* observer,
@@ -65,8 +64,10 @@
PacedSender* pacer);
~SendSideCongestionController() override;
- void RegisterPacketFeedbackObserver(PacketFeedbackObserver* observer);
- void DeRegisterPacketFeedbackObserver(PacketFeedbackObserver* observer);
+ void RegisterPacketFeedbackObserver(
+ PacketFeedbackObserver* observer) override;
+ void DeRegisterPacketFeedbackObserver(
+ PacketFeedbackObserver* observer) override;
// Currently, there can be at most one observer.
// TODO(nisse): The RegisterNetworkObserver method is needed because we first
@@ -74,32 +75,33 @@
// reference to Call, which then registers itself as the observer. We should
// try to break this circular chain of references, and make the observer a
// construction time constant.
- void RegisterNetworkObserver(NetworkChangedObserver* observer);
- void DeRegisterNetworkObserver(NetworkChangedObserver* observer);
+ void RegisterNetworkObserver(NetworkChangedObserver* observer) override;
+ void DeRegisterNetworkObserver(NetworkChangedObserver* observer) override;
- virtual void SetBweBitrates(int min_bitrate_bps,
- int start_bitrate_bps,
- int max_bitrate_bps);
+ void SetBweBitrates(int min_bitrate_bps,
+ int start_bitrate_bps,
+ int max_bitrate_bps) override;
// Resets the BWE state. Note the first argument is the bitrate_bps.
- virtual void OnNetworkRouteChanged(const rtc::NetworkRoute& network_route,
- int bitrate_bps,
- int min_bitrate_bps,
- int max_bitrate_bps);
- virtual void SignalNetworkState(NetworkState state);
- virtual void SetTransportOverhead(size_t transport_overhead_bytes_per_packet);
+ void OnNetworkRouteChanged(const rtc::NetworkRoute& network_route,
+ int bitrate_bps,
+ int min_bitrate_bps,
+ int max_bitrate_bps) override;
+ void SignalNetworkState(NetworkState state) override;
+ void SetTransportOverhead(
+ size_t transport_overhead_bytes_per_packet) override;
- virtual RtcpBandwidthObserver* GetBandwidthObserver();
+ RtcpBandwidthObserver* GetBandwidthObserver() override;
- virtual bool AvailableBandwidth(uint32_t* bandwidth) const;
- virtual int64_t GetPacerQueuingDelayMs() const;
- virtual int64_t GetFirstPacketTimeMs() const;
+ bool AvailableBandwidth(uint32_t* bandwidth) const override;
+ int64_t GetPacerQueuingDelayMs() const override;
+ int64_t GetFirstPacketTimeMs() const override;
- virtual TransportFeedbackObserver* GetTransportFeedbackObserver();
+ TransportFeedbackObserver* GetTransportFeedbackObserver() override;
- RateLimiter* GetRetransmissionRateLimiter();
- void EnablePeriodicAlrProbing(bool enable);
+ RateLimiter* GetRetransmissionRateLimiter() override;
+ void EnablePeriodicAlrProbing(bool enable) override;
- virtual void OnSentPacket(const rtc::SentPacket& sent_packet);
+ void OnSentPacket(const rtc::SentPacket& sent_packet) override;
// Implements RtcpBandwidthObserver
void OnReceivedEstimatedBitrate(uint32_t bitrate) override;
diff --git a/modules/congestion_controller/rtp/send_side_congestion_controller_unittest.cc b/modules/congestion_controller/rtp/send_side_congestion_controller_unittest.cc
index 4f75b48..3da03ad 100644
--- a/modules/congestion_controller/rtp/send_side_congestion_controller_unittest.cc
+++ b/modules/congestion_controller/rtp/send_side_congestion_controller_unittest.cc
@@ -11,7 +11,6 @@
#include "modules/congestion_controller/rtp/include/send_side_congestion_controller.h"
#include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
#include "modules/congestion_controller/include/mock/mock_congestion_observer.h"
-#include "modules/congestion_controller/include/network_changed_observer.h"
#include "modules/congestion_controller/rtp/congestion_controller_unittests_helper.h"
#include "modules/pacing/mock/mock_paced_sender.h"
#include "modules/pacing/packet_router.h"
diff --git a/modules/congestion_controller/send_side_congestion_controller.cc b/modules/congestion_controller/send_side_congestion_controller.cc
index 6520f29..2548da9 100644
--- a/modules/congestion_controller/send_side_congestion_controller.cc
+++ b/modules/congestion_controller/send_side_congestion_controller.cc
@@ -230,6 +230,10 @@
return bitrate_controller_->AvailableBandwidth(bandwidth);
}
+RtcpBandwidthObserver* SendSideCongestionController::GetBandwidthObserver() {
+ return bitrate_controller_.get();
+}
+
RtcpBandwidthObserver* SendSideCongestionController::GetBandwidthObserver()
const {
return bitrate_controller_.get();