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}
This commit is contained in:
Sebastian Jansson 2018-03-21 12:48:43 +01:00 committed by Commit Bot
parent 1d430f727d
commit 12130bb135
5 changed files with 7 additions and 0 deletions

View file

@ -1117,6 +1117,7 @@ void Call::OnAllocationLimitsChanged(uint32_t min_send_bitrate_bps,
bool has_packet_feedback) { bool has_packet_feedback) {
transport_send_->SetAllocatedSendBitrateLimits( transport_send_->SetAllocatedSendBitrateLimits(
min_send_bitrate_bps, max_padding_bitrate_bps, total_bitrate_bps); min_send_bitrate_bps, max_padding_bitrate_bps, total_bitrate_bps);
transport_send_->SetPerPacketFeedbackAvailable(has_packet_feedback);
rtc::CritScope lock(&bitrate_crit_); rtc::CritScope lock(&bitrate_crit_);
min_allocated_send_bitrate_bps_ = min_send_bitrate_bps; min_allocated_send_bitrate_bps_ = min_send_bitrate_bps;
configured_max_padding_bitrate_bps_ = max_padding_bitrate_bps; configured_max_padding_bitrate_bps_ = max_padding_bitrate_bps;

View file

@ -203,6 +203,9 @@ int64_t RtpTransportControllerSend::GetPacerQueuingDelayMs() const {
int64_t RtpTransportControllerSend::GetFirstPacketTimeMs() const { int64_t RtpTransportControllerSend::GetFirstPacketTimeMs() const {
return pacer_.FirstSentPacketTimeMs(); return pacer_.FirstSentPacketTimeMs();
} }
void RtpTransportControllerSend::SetPerPacketFeedbackAvailable(bool available) {
send_side_cc_->SetPerPacketFeedbackAvailable(available);
}
void RtpTransportControllerSend::EnablePeriodicAlrProbing(bool enable) { void RtpTransportControllerSend::EnablePeriodicAlrProbing(bool enable) {
send_side_cc_->EnablePeriodicAlrProbing(enable); send_side_cc_->EnablePeriodicAlrProbing(enable);
} }

View file

@ -73,6 +73,7 @@ class RtpTransportControllerSend final
RtcpBandwidthObserver* GetBandwidthObserver() override; RtcpBandwidthObserver* GetBandwidthObserver() override;
int64_t GetPacerQueuingDelayMs() const override; int64_t GetPacerQueuingDelayMs() const override;
int64_t GetFirstPacketTimeMs() const override; int64_t GetFirstPacketTimeMs() const override;
void SetPerPacketFeedbackAvailable(bool available) override;
void EnablePeriodicAlrProbing(bool enable) override; void EnablePeriodicAlrProbing(bool enable) override;
void OnSentPacket(const rtc::SentPacket& sent_packet) override; void OnSentPacket(const rtc::SentPacket& sent_packet) override;

View file

@ -101,6 +101,7 @@ class RtpTransportControllerSendInterface {
virtual int64_t GetFirstPacketTimeMs() const = 0; virtual int64_t GetFirstPacketTimeMs() const = 0;
virtual void EnablePeriodicAlrProbing(bool enable) = 0; virtual void EnablePeriodicAlrProbing(bool enable) = 0;
virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0; virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0;
virtual void SetPerPacketFeedbackAvailable(bool available) = 0;
virtual void SetSdpBitrateParameters( virtual void SetSdpBitrateParameters(
const BitrateConstraints& constraints) = 0; const BitrateConstraints& constraints) = 0;

View file

@ -45,6 +45,7 @@ class MockRtpTransportControllerSend
MOCK_METHOD0(GetBandwidthObserver, RtcpBandwidthObserver*()); MOCK_METHOD0(GetBandwidthObserver, RtcpBandwidthObserver*());
MOCK_CONST_METHOD0(GetPacerQueuingDelayMs, int64_t()); MOCK_CONST_METHOD0(GetPacerQueuingDelayMs, int64_t());
MOCK_CONST_METHOD0(GetFirstPacketTimeMs, int64_t()); MOCK_CONST_METHOD0(GetFirstPacketTimeMs, int64_t());
MOCK_METHOD1(SetPerPacketFeedbackAvailable, void(bool));
MOCK_METHOD1(EnablePeriodicAlrProbing, void(bool)); MOCK_METHOD1(EnablePeriodicAlrProbing, void(bool));
MOCK_METHOD1(OnSentPacket, void(const rtc::SentPacket&)); MOCK_METHOD1(OnSentPacket, void(const rtc::SentPacket&));
MOCK_METHOD1(SetSdpBitrateParameters, void(const BitrateConstraints&)); MOCK_METHOD1(SetSdpBitrateParameters, void(const BitrateConstraints&));