Reporting feedback availability to congestion controller.
This CL adds reporting of per packet feedback availability from Call
via RtpTransportControllerSend to SendSideCongestionController.
This is part of a series of CLs tracking the transport feedback status
of the streams known to BitrateAllocator and reporting the status to
the congestion controller.
Bug: webrtc:8415
Change-Id: I20b3dbb4a027c46476bc2d2bc875374bff05609a
Reviewed-on: https://webrtc-review.googlesource.com/63220
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22566}
diff --git a/call/call.cc b/call/call.cc
index 3cd9864..d19fb4b 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -1117,6 +1117,7 @@
bool has_packet_feedback) {
transport_send_->SetAllocatedSendBitrateLimits(
min_send_bitrate_bps, max_padding_bitrate_bps, total_bitrate_bps);
+ transport_send_->SetPerPacketFeedbackAvailable(has_packet_feedback);
rtc::CritScope lock(&bitrate_crit_);
min_allocated_send_bitrate_bps_ = min_send_bitrate_bps;
configured_max_padding_bitrate_bps_ = max_padding_bitrate_bps;
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index a445320..d471ea4 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -203,6 +203,9 @@
int64_t RtpTransportControllerSend::GetFirstPacketTimeMs() const {
return pacer_.FirstSentPacketTimeMs();
}
+void RtpTransportControllerSend::SetPerPacketFeedbackAvailable(bool available) {
+ send_side_cc_->SetPerPacketFeedbackAvailable(available);
+}
void RtpTransportControllerSend::EnablePeriodicAlrProbing(bool enable) {
send_side_cc_->EnablePeriodicAlrProbing(enable);
}
diff --git a/call/rtp_transport_controller_send.h b/call/rtp_transport_controller_send.h
index c9a87ed..eff1e16 100644
--- a/call/rtp_transport_controller_send.h
+++ b/call/rtp_transport_controller_send.h
@@ -73,6 +73,7 @@
RtcpBandwidthObserver* GetBandwidthObserver() override;
int64_t GetPacerQueuingDelayMs() const override;
int64_t GetFirstPacketTimeMs() const override;
+ void SetPerPacketFeedbackAvailable(bool available) override;
void EnablePeriodicAlrProbing(bool enable) override;
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
diff --git a/call/rtp_transport_controller_send_interface.h b/call/rtp_transport_controller_send_interface.h
index 50f80d5..7458b37 100644
--- a/call/rtp_transport_controller_send_interface.h
+++ b/call/rtp_transport_controller_send_interface.h
@@ -101,6 +101,7 @@
virtual int64_t GetFirstPacketTimeMs() const = 0;
virtual void EnablePeriodicAlrProbing(bool enable) = 0;
virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0;
+ virtual void SetPerPacketFeedbackAvailable(bool available) = 0;
virtual void SetSdpBitrateParameters(
const BitrateConstraints& constraints) = 0;
diff --git a/call/test/mock_rtp_transport_controller_send.h b/call/test/mock_rtp_transport_controller_send.h
index 65aa068..1878f1d 100644
--- a/call/test/mock_rtp_transport_controller_send.h
+++ b/call/test/mock_rtp_transport_controller_send.h
@@ -45,6 +45,7 @@
MOCK_METHOD0(GetBandwidthObserver, RtcpBandwidthObserver*());
MOCK_CONST_METHOD0(GetPacerQueuingDelayMs, int64_t());
MOCK_CONST_METHOD0(GetFirstPacketTimeMs, int64_t());
+ MOCK_METHOD1(SetPerPacketFeedbackAvailable, void(bool));
MOCK_METHOD1(EnablePeriodicAlrProbing, void(bool));
MOCK_METHOD1(OnSentPacket, void(const rtc::SentPacket&));
MOCK_METHOD1(SetSdpBitrateParameters, void(const BitrateConstraints&));