Reporting packet feedback availability in VideoSendStream
This CL adds tracking and reporting of packet feedback availability in
the VideoSendStream class.
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: I4e7b6d5b034b4ae1e86ea439e6d001eea04784ce
Reviewed-on: https://webrtc-review.googlesource.com/63204
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22545}diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index f54a4ab..a51a5ae 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -427,6 +427,7 @@
uint32_t encoder_max_bitrate_bps_;
uint32_t encoder_target_rate_bps_;
double encoder_bitrate_priority_;
+ bool has_packet_feedback_;
VideoStreamEncoder* const video_stream_encoder_;
EncoderRtcpFeedback encoder_feedback_;
@@ -710,6 +711,7 @@
encoder_min_bitrate_bps_(0),
encoder_target_rate_bps_(0),
encoder_bitrate_priority_(initial_encoder_bitrate_priority),
+ has_packet_feedback_(false),
video_stream_encoder_(video_stream_encoder),
encoder_feedback_(Clock::GetRealTimeClock(),
config_->rtp.ssrcs,
@@ -765,6 +767,8 @@
// If send-side BWE is enabled, check if we should apply updated probing and
// pacing settings.
if (TransportSeqNumExtensionConfigured(*config_)) {
+ has_packet_feedback_ = true;
+
rtc::Optional<AlrExperimentSettings> alr_settings;
if (content_type == VideoEncoderConfig::ContentType::kScreen) {
alr_settings = AlrExperimentSettings::CreateFromFieldTrial(
@@ -924,7 +928,7 @@
bitrate_allocator_->AddObserver(
this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_,
max_padding_bitrate_, !config_->suspend_below_min_bitrate,
- config_->track_id, encoder_bitrate_priority_);
+ config_->track_id, encoder_bitrate_priority_, has_packet_feedback_);
// Start monitoring encoder activity.
{
rtc::CritScope lock(&encoder_activity_crit_sect_);
@@ -981,7 +985,7 @@
bitrate_allocator_->AddObserver(
this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_,
max_padding_bitrate_, !config_->suspend_below_min_bitrate,
- config_->track_id, encoder_bitrate_priority_);
+ config_->track_id, encoder_bitrate_priority_, has_packet_feedback_);
}
void VideoSendStreamImpl::OnEncoderConfigurationChanged(
@@ -1038,7 +1042,7 @@
bitrate_allocator_->AddObserver(
this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_,
max_padding_bitrate_, !config_->suspend_below_min_bitrate,
- config_->track_id, encoder_bitrate_priority_);
+ config_->track_id, encoder_bitrate_priority_, has_packet_feedback_);
}
}