Add PeerConnection option to enable RTX handling in the audio jitter buffer.
Bug: webrtc:10178
Change-Id: I70abce0c7b74124d2b1978d9a5eb8216b6233d1a
Reviewed-on: https://webrtc-review.googlesource.com/c/116784
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26203}
diff --git a/audio/audio_receive_stream.cc b/audio/audio_receive_stream.cc
index 143c6f7..2e874ba 100644
--- a/audio/audio_receive_stream.cc
+++ b/audio/audio_receive_stream.cc
@@ -79,8 +79,8 @@
config.media_transport, config.rtcp_send_transport, event_log,
config.rtp.remote_ssrc, config.jitter_buffer_max_packets,
config.jitter_buffer_fast_accelerate, config.jitter_buffer_min_delay_ms,
- config.decoder_factory, config.codec_pair_id, config.frame_decryptor,
- config.crypto_options);
+ config.jitter_buffer_enable_rtx_handling, config.decoder_factory,
+ config.codec_pair_id, config.frame_decryptor, config.crypto_options);
}
} // namespace
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index 7ae2e26..e5bcad3 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -104,6 +104,7 @@
size_t jitter_buffer_max_packets,
bool jitter_buffer_fast_playout,
int jitter_buffer_min_delay_ms,
+ bool jitter_buffer_enable_rtx_handling,
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
absl::optional<AudioCodecPairId> codec_pair_id,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
@@ -453,6 +454,7 @@
size_t jitter_buffer_max_packets,
bool jitter_buffer_fast_playout,
int jitter_buffer_min_delay_ms,
+ bool jitter_buffer_enable_rtx_handling,
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
absl::optional<AudioCodecPairId> codec_pair_id,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
@@ -487,6 +489,8 @@
acm_config.neteq_config.enable_fast_accelerate = jitter_buffer_fast_playout;
acm_config.neteq_config.min_delay_ms = jitter_buffer_min_delay_ms;
acm_config.neteq_config.enable_muted_state = true;
+ acm_config.neteq_config.enable_rtx_handling =
+ jitter_buffer_enable_rtx_handling;
audio_coding_.reset(AudioCodingModule::Create(acm_config));
_outputAudioLevel.Clear();
@@ -988,6 +992,7 @@
size_t jitter_buffer_max_packets,
bool jitter_buffer_fast_playout,
int jitter_buffer_min_delay_ms,
+ bool jitter_buffer_enable_rtx_handling,
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
absl::optional<AudioCodecPairId> codec_pair_id,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,
@@ -996,8 +1001,8 @@
module_process_thread, audio_device_module, media_transport,
rtcp_send_transport, rtc_event_log, remote_ssrc,
jitter_buffer_max_packets, jitter_buffer_fast_playout,
- jitter_buffer_min_delay_ms, decoder_factory, codec_pair_id,
- frame_decryptor, crypto_options);
+ jitter_buffer_min_delay_ms, jitter_buffer_enable_rtx_handling,
+ decoder_factory, codec_pair_id, frame_decryptor, crypto_options);
}
} // namespace voe
diff --git a/audio/channel_receive.h b/audio/channel_receive.h
index 6bbf990..2c45a8f 100644
--- a/audio/channel_receive.h
+++ b/audio/channel_receive.h
@@ -139,6 +139,7 @@
size_t jitter_buffer_max_packets,
bool jitter_buffer_fast_playout,
int jitter_buffer_min_delay_ms,
+ bool jitter_buffer_enable_rtx_handling,
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
absl::optional<AudioCodecPairId> codec_pair_id,
rtc::scoped_refptr<FrameDecryptorInterface> frame_decryptor,