webrtc/modules/audio_coding/neteq
Jakob Ivarsson adfc1601c1 Rewrite NetEq stable delay mode.
The goal is to reduce the amount of time stretching done in response
to network jitter. Specifically, we should be able to “ride” over delay
spikes if the current delay is sufficient, without decelerating
playout. We should also avoid accelerating immediately after a buffer
underrun, until we are reasonably sure that the jitter has passed.
This is achieved by increasing the deadband where we choose to do
normal playout, based on the maximum delay in the short term packet
arrival history.

The buffer level filter is still used to report the average delay for
A/V sync purposes.

The new behavior is behind a flag and will be experimented with before
it is made default.

Bug: webrtc:13322
Change-Id: I5fba0c9d46d835dbe5401669598fa031512ccced
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299500
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39730}
2023-03-31 14:47:55 +00:00
..
g3doc Reland "Migrate WebRTC documentation to new renderer" 2023-01-31 09:30:04 +00:00
mock Remove CNG state tracking from NetEq decision logic. 2023-03-17 15:00:17 +00:00
test Reland "[ACM] iSAC audio codec removed" 2022-11-17 12:52:35 +00:00
tools Revert "Unifying the handling of the events in NetEqInput." 2023-03-29 08:01:46 +00:00
accelerate.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
accelerate.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
audio_decoder_unittest.cc Reland "[ACM] iSAC audio codec removed" 2022-11-17 12:52:35 +00:00
audio_multi_vector.cc Fix crash when appending empty array to AudioMultiVector. 2022-09-26 14:58:55 +00:00
audio_multi_vector.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
audio_multi_vector_unittest.cc Fix crash when appending empty array to AudioMultiVector. 2022-09-26 14:58:55 +00:00
audio_vector.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
audio_vector.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
audio_vector_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
background_noise.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
background_noise.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
background_noise_unittest.cc
buffer_level_filter.cc Fix possible integer overflow. 2022-07-01 16:26:10 +00:00
buffer_level_filter.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
buffer_level_filter_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
comfort_noise.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
comfort_noise.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
comfort_noise_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
cross_correlation.cc Implement a Neon optimized function to find the argmax element in an array. 2021-01-21 13:42:34 +00:00
cross_correlation.h Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
decision_logic.cc Rewrite NetEq stable delay mode. 2023-03-31 14:47:55 +00:00
decision_logic.h Rewrite NetEq stable delay mode. 2023-03-31 14:47:55 +00:00
decision_logic_unittest.cc Include packet waiting time in concealment decision. 2023-03-24 13:18:58 +00:00
decoder_database.cc Adopt absl::string_view in modules/audio_coding/ 2022-07-20 13:34:23 +00:00
decoder_database.h Adopt absl::string_view in modules/audio_coding/ 2022-07-20 13:34:23 +00:00
decoder_database_unittest.cc Move rtc::make_ref_counted to api/ 2022-06-15 09:47:38 +00:00
default_neteq_factory.cc Clean up the NetEqFactory API. 2019-11-29 14:04:44 +00:00
default_neteq_factory.h Clean up the NetEqFactory API. 2019-11-29 14:04:44 +00:00
delay_manager.cc Implement RTCInboundRTPStreamStats.JitterBufferMinimumDelay 2022-07-20 09:14:03 +00:00
delay_manager.h Implement RTCInboundRTPStreamStats.JitterBufferMinimumDelay 2022-07-20 09:14:03 +00:00
delay_manager_unittest.cc Use packet arrival history in delay manager. 2022-05-25 20:03:31 +00:00
dsp_helper.cc Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +00:00
dsp_helper.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
dsp_helper_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
dtmf_buffer.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
dtmf_buffer.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
dtmf_buffer_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
dtmf_tone_generator.cc Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +00:00
dtmf_tone_generator.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
dtmf_tone_generator_unittest.cc Remove simple stringstream usages. 2018-09-06 12:53:19 +00:00
expand.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
expand.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
expand_uma_logger.cc Adopt absl::string_view in modules/audio_coding/ 2022-07-20 13:34:23 +00:00
expand_uma_logger.h Adopt absl::string_view in modules/audio_coding/ 2022-07-20 13:34:23 +00:00
expand_unittest.cc Fix -Wunused-but-set-variable. 2021-10-28 12:53:49 +00:00
histogram.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
histogram.h Improve adaptation to reordered packets in delay manager. 2021-09-08 16:41:27 +00:00
histogram_unittest.cc Remove inter-arrival delay mode from DelayManager. 2020-01-08 13:20:36 +00:00
merge.cc Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +00:00
merge.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
merge_unittest.cc Fixing a buffer overflow in Merge::Downsample 2019-11-25 12:16:30 +00:00
nack_tracker.cc Remove decoded timestamp extrapolation from NackTracker. 2023-03-28 12:33:42 +00:00
nack_tracker.h Remove decoded timestamp extrapolation from NackTracker. 2023-03-28 12:33:42 +00:00
nack_tracker_unittest.cc Remove decoded timestamp extrapolation from NackTracker. 2023-03-28 12:33:42 +00:00
neteq_decoder_plc_unittest.cc Revert "Unifying the handling of the events in NetEqInput." 2023-03-29 08:01:46 +00:00
neteq_impl.cc Count type of concealment based on last decoded type. 2023-03-29 14:34:57 +00:00
neteq_impl.h Count type of concealment based on last decoded type. 2023-03-29 14:34:57 +00:00
neteq_impl_unittest.cc Remove CNG state tracking from NetEq decision logic. 2023-03-17 15:00:17 +00:00
neteq_network_stats_unittest.cc Move rtc::make_ref_counted to api/ 2022-06-15 09:47:38 +00:00
neteq_stereo_unittest.cc NetEq: Fix bug in PLC for multi-channel audio 2019-12-02 17:44:58 +00:00
neteq_unittest.cc Revert "Unifying the handling of the events in NetEqInput." 2023-03-29 08:01:46 +00:00
neteq_unittest.proto Delete unused NetEq stats currentPacketLossRate, currentDiscardRate and addedSamples 2020-09-21 12:19:16 +00:00
normal.cc LSC: Apply clang-tidy's modernize-use-bool-literals 2022-01-24 20:42:01 +00:00
normal.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
normal_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
packet.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
packet.h Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
packet_arrival_history.cc [Unwrap] Migrate PacketArrivalHistory to RtpTimestampUnwrapper 2023-01-09 16:34:29 +00:00
packet_arrival_history.h [Unwrap] Migrate PacketArrivalHistory to RtpTimestampUnwrapper 2023-01-09 16:34:29 +00:00
packet_arrival_history_unittest.cc [Unwrap] Migrate PacketArrivalHistory to RtpTimestampUnwrapper 2023-01-09 16:34:29 +00:00
packet_buffer.cc Include packet waiting time in concealment decision. 2023-03-24 13:18:58 +00:00
packet_buffer.h Include packet waiting time in concealment decision. 2023-03-24 13:18:58 +00:00
packet_buffer_unittest.cc Include packet waiting time in concealment decision. 2023-03-24 13:18:58 +00:00
post_decode_vad.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
post_decode_vad.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
post_decode_vad_unittest.cc
preemptive_expand.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
preemptive_expand.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
random_vector.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
random_vector.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
random_vector_unittest.cc
red_payload_splitter.cc RtpPacketInfo: new ctor + deprecated ctors clean-up 2022-09-20 08:58:38 +00:00
red_payload_splitter.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
red_payload_splitter_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
reorder_optimizer.cc Improve adaptation to reordered packets in delay manager. 2021-09-08 16:41:27 +00:00
reorder_optimizer.h Improve adaptation to reordered packets in delay manager. 2021-09-08 16:41:27 +00:00
reorder_optimizer_unittest.cc Improve adaptation to reordered packets in delay manager. 2021-09-08 16:41:27 +00:00
statistics_calculator.cc Adopt absl::string_view in modules/audio_coding/ 2022-07-20 13:34:23 +00:00
statistics_calculator.h Adopt absl::string_view in modules/audio_coding/ 2022-07-20 13:34:23 +00:00
statistics_calculator_unittest.cc Rename discarded_primary_packets to packets_discarded. 2022-05-31 13:24:24 +00:00
sync_buffer.cc Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +00:00
sync_buffer.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
sync_buffer_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
time_stretch.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
time_stretch.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
time_stretch_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
timestamp_scaler.cc Use backticks not vertical bars to denote variables in comments for /modules/audio_coding 2021-08-02 10:45:40 +00:00
timestamp_scaler.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
timestamp_scaler_unittest.cc Update modules/ to not use implicit conversion from scoped_refptr<T> to T*. 2022-04-21 14:23:24 +00:00
underrun_optimizer.cc Reland "Remove legacy delay manger field trial and update default config." 2021-11-09 14:49:56 +00:00
underrun_optimizer.h Refactor delay manager. 2021-09-07 13:45:47 +00:00
underrun_optimizer_unittest.cc Refactor delay manager. 2021-09-07 13:45:47 +00:00