aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorSebastian Jansson <srte@webrtc.org>2018-03-21 12:46:56 +0100
committerCommit Bot <commit-bot@chromium.org>2018-03-21 14:03:38 +0000
commit763e947cf3799925c6bbb219b581f5820a391504 (patch)
tree3242e7ffe240aae800323ac2b4a7f1e2a7cd7e50 /audio
parent08126349f5cc5d682a3398014a45088b4bb310f5 (diff)
downloadwebrtc-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.cc23
-rw-r--r--audio/audio_send_stream.h3
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);