diff options
author | Sebastian Jansson <srte@webrtc.org> | 2018-03-21 12:46:56 +0100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2018-03-21 14:03:38 +0000 |
commit | 763e947cf3799925c6bbb219b581f5820a391504 (patch) | |
tree | 3242e7ffe240aae800323ac2b4a7f1e2a7cd7e50 /audio | |
parent | 08126349f5cc5d682a3398014a45088b4bb310f5 (diff) | |
download | webrtc-763e947cf3799925c6bbb219b581f5820a391504.tar.gz |
Reporting packet feedback availability in AudioSendStream
This CL adds tracking and reporting of packet feedback availability in
the AudioSendStream 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: I1053675d245a59c1b97fd482de88e63cbfae0038
Reviewed-on: https://webrtc-review.googlesource.com/63203
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22539}
Diffstat (limited to 'audio')
-rw-r--r-- | audio/audio_send_stream.cc | 23 | ||||
-rw-r--r-- | audio/audio_send_stream.h | 3 |
2 files changed, 16 insertions, 10 deletions
diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc index 04dffcde4a..8ff34ed55a 100644 --- a/audio/audio_send_stream.cc +++ b/audio/audio_send_stream.cc @@ -277,14 +277,16 @@ void AudioSendStream::Start() { return; } + bool has_transport_sequence_number = + FindExtensionIds(config_.rtp.extensions).transport_sequence_number != 0; if (config_.min_bitrate_bps != -1 && config_.max_bitrate_bps != -1 && - (FindExtensionIds(config_.rtp.extensions).transport_sequence_number != - 0 || + (has_transport_sequence_number || !webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe"))) { // Audio BWE is enabled. transport_->packet_sender()->SetAccountForAudioPackets(true); ConfigureBitrateObserver(config_.min_bitrate_bps, config_.max_bitrate_bps, - config_.bitrate_priority); + config_.bitrate_priority, + has_transport_sequence_number); } channel_proxy_->StartSend(); sending_ = true; @@ -670,12 +672,13 @@ void AudioSendStream::ReconfigureBitrateObserver( return; } + bool has_transport_sequence_number = new_transport_seq_num_id != 0; if (new_config.min_bitrate_bps != -1 && new_config.max_bitrate_bps != -1 && - (new_transport_seq_num_id != 0 || + (has_transport_sequence_number || !webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe"))) { - stream->ConfigureBitrateObserver(new_config.min_bitrate_bps, - new_config.max_bitrate_bps, - new_config.bitrate_priority); + stream->ConfigureBitrateObserver( + new_config.min_bitrate_bps, new_config.max_bitrate_bps, + new_config.bitrate_priority, has_transport_sequence_number); } else { stream->RemoveBitrateObserver(); } @@ -683,7 +686,8 @@ void AudioSendStream::ReconfigureBitrateObserver( void AudioSendStream::ConfigureBitrateObserver(int min_bitrate_bps, int max_bitrate_bps, - double bitrate_priority) { + double bitrate_priority, + bool has_packet_feedback) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); RTC_DCHECK_GE(max_bitrate_bps, min_bitrate_bps); rtc::Event thread_sync_event(false /* manual_reset */, false); @@ -695,7 +699,8 @@ void AudioSendStream::ConfigureBitrateObserver(int min_bitrate_bps, config_.bitrate_priority = bitrate_priority; // This either updates the current observer or adds a new observer. bitrate_allocator_->AddObserver(this, min_bitrate_bps, max_bitrate_bps, 0, - true, config_.track_id, bitrate_priority); + true, config_.track_id, bitrate_priority, + has_packet_feedback); thread_sync_event.Set(); }); thread_sync_event.Wait(rtc::Event::kForever); diff --git a/audio/audio_send_stream.h b/audio/audio_send_stream.h index 1cda778940..8a4528b446 100644 --- a/audio/audio_send_stream.h +++ b/audio/audio_send_stream.h @@ -119,7 +119,8 @@ class AudioSendStream final : public webrtc::AudioSendStream, void ConfigureBitrateObserver(int min_bitrate_bps, int max_bitrate_bps, - double bitrate_priority); + double bitrate_priority, + bool has_packet_feedback); void RemoveBitrateObserver(); void RegisterCngPayloadType(int payload_type, int clockrate_hz); |