From 1d430f727dc637b78de46978de400725ab21be48 Mon Sep 17 00:00:00 2001 From: Sebastian Jansson Date: Wed, 21 Mar 2018 12:47:10 +0100 Subject: [PATCH] Interface for packet feedback availability in SSCC This CL adds a function to the SendSideCongestionController interface for reporting per packet feedback availability. 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: Ifcb6837bb80c5fcfc1f12f4f93ec38cc2903118f Reviewed-on: https://webrtc-review.googlesource.com/63205 Reviewed-by: Niels Moller Commit-Queue: Sebastian Jansson Cr-Commit-Position: refs/heads/master@{#22565} --- .../include/send_side_congestion_controller.h | 2 ++ .../include/send_side_congestion_controller_interface.h | 1 + .../rtp/include/send_side_congestion_controller.h | 1 + .../rtp/send_side_congestion_controller.cc | 3 +++ .../congestion_controller/send_side_congestion_controller.cc | 3 +++ 5 files changed, 10 insertions(+) diff --git a/modules/congestion_controller/include/send_side_congestion_controller.h b/modules/congestion_controller/include/send_side_congestion_controller.h index 803a56bd75..e19a5c579e 100644 --- a/modules/congestion_controller/include/send_side_congestion_controller.h +++ b/modules/congestion_controller/include/send_side_congestion_controller.h @@ -96,6 +96,8 @@ class SendSideCongestionController TransportFeedbackObserver* GetTransportFeedbackObserver() override; RTC_DEPRECATED virtual RateLimiter* GetRetransmissionRateLimiter(); + + void SetPerPacketFeedbackAvailable(bool available) override; void EnablePeriodicAlrProbing(bool enable) override; void OnSentPacket(const rtc::SentPacket& sent_packet) 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 af153f7255..0f00255bda 100644 --- a/modules/congestion_controller/include/send_side_congestion_controller_interface.h +++ b/modules/congestion_controller/include/send_side_congestion_controller_interface.h @@ -60,6 +60,7 @@ class SendSideCongestionControllerInterface : public CallStatsObserver, virtual RtcpBandwidthObserver* GetBandwidthObserver() = 0; virtual bool AvailableBandwidth(uint32_t* bandwidth) const = 0; virtual TransportFeedbackObserver* GetTransportFeedbackObserver() = 0; + virtual void SetPerPacketFeedbackAvailable(bool available) = 0; virtual void EnablePeriodicAlrProbing(bool enable) = 0; virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0; virtual void SetPacingFactor(float pacing_factor) = 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 04c8e6d00d..452afb6f12 100644 --- a/modules/congestion_controller/rtp/include/send_side_congestion_controller.h +++ b/modules/congestion_controller/rtp/include/send_side_congestion_controller.h @@ -100,6 +100,7 @@ class SendSideCongestionController TransportFeedbackObserver* GetTransportFeedbackObserver() override; + void SetPerPacketFeedbackAvailable(bool available) override; void EnablePeriodicAlrProbing(bool enable) override; void OnSentPacket(const rtc::SentPacket& sent_packet) override; diff --git a/modules/congestion_controller/rtp/send_side_congestion_controller.cc b/modules/congestion_controller/rtp/send_side_congestion_controller.cc index f8035e30d4..7c7d0c2795 100644 --- a/modules/congestion_controller/rtp/send_side_congestion_controller.cc +++ b/modules/congestion_controller/rtp/send_side_congestion_controller.cc @@ -460,6 +460,9 @@ RtcpBandwidthObserver* SendSideCongestionController::GetBandwidthObserver() { return this; } +void SendSideCongestionController::SetPerPacketFeedbackAvailable( + bool available) {} + void SendSideCongestionController::EnablePeriodicAlrProbing(bool enable) { task_queue_->PostTask([this, enable]() { RTC_DCHECK_RUN_ON(task_queue_ptr_); diff --git a/modules/congestion_controller/send_side_congestion_controller.cc b/modules/congestion_controller/send_side_congestion_controller.cc index fc316f88d6..bb959f34ef 100644 --- a/modules/congestion_controller/send_side_congestion_controller.cc +++ b/modules/congestion_controller/send_side_congestion_controller.cc @@ -251,6 +251,9 @@ RateLimiter* SendSideCongestionController::GetRetransmissionRateLimiter() { return retransmission_rate_limiter_.get(); } +void SendSideCongestionController::SetPerPacketFeedbackAvailable( + bool available) {} + void SendSideCongestionController::EnablePeriodicAlrProbing(bool enable) { probe_controller_->EnablePeriodicAlrProbing(enable); }