webrtc/modules/audio_coding/neteq
Ruslan Burakov 76a74e6dc8 Delay bug during audio receiver stream recreation.
For e.g. when audio receiver is recreated during SetRtpExtensionsAndRecreateStream in webrtc_voice_engine.h,
the audio minimum delay can't go down.

Imagine we set base minimum playout delay when audio receiver stream is created, then its value will be cached, to be applied during recreation. Then SetRtpExtensionsAndRecreateStream is fired, and audio receiver stream is recreated with the cached value, but currently it in the constructor it is used to initialize both base minimum playout delay and minimum playout delay. Which leads to the bug that effective minimum playout delay can't go down anymore as if you set base minimum playout delay to the low value then effective delay use the biggest value which minimum playout delay.

This didn't come up during previous trials because of
https://webrtc-review.googlesource.com/c/src/+/122280
It was reseting minimum playout delay to 0 asynchronously, that is why you couldn't see this bug.


Bug: webrtc:10287
Change-Id: I924446bfcb33ac94f7e5bf987a1868acaf1b0346
Reviewed-on: https://webrtc-review.googlesource.com/c/124000
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Cr-Commit-Position: refs/heads/master@{#26832}
2019-02-25 09:23:56 +00:00
..
include Fix NetEq minimum and maximum delay always reset on acm creation. 2019-02-20 14:04:51 +00:00
mock Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
test (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
tools Fix -Wextra-semi warnings. 2019-02-25 09:22:51 +00:00
accelerate.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
accelerate.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
audio_decoder_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
audio_multi_vector.cc Let NetEq use the PLC output from a decoder 2018-09-14 07:05:20 +00:00
audio_multi_vector.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
audio_multi_vector_unittest.cc Stop using Googletest legacy APIs. 2019-01-31 13:23:33 +00:00
audio_vector.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
audio_vector.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
audio_vector_unittest.cc Delete unused includes of assert.h 2018-10-04 14:01:44 +00:00
background_noise.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
background_noise.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
background_noise_unittest.cc
buffer_level_filter.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
buffer_level_filter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
buffer_level_filter_unittest.cc Remove simple stringstream usages. 2018-09-06 12:53:19 +00:00
comfort_noise.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
comfort_noise.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
comfort_noise_unittest.cc
cross_correlation.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
cross_correlation.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
decision_logic.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
decision_logic.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
decision_logic_unittest.cc Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
decoder_database.cc Delete enum NetEqDecoder. 2019-01-11 13:52:25 +00:00
decoder_database.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
decoder_database_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
defines.h Let NetEq use the PLC output from a decoder 2018-09-14 07:05:20 +00:00
delay_manager.cc Delay bug during audio receiver stream recreation. 2019-02-25 09:23:56 +00:00
delay_manager.h Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
delay_manager_unittest.cc Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
delay_peak_detector.cc Add NetEq config flag that enables RTX handling. 2019-01-10 10:04:34 +00:00
delay_peak_detector.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
delay_peak_detector_unittest.cc Add NetEq config flag that enables RTX handling. 2019-01-10 10:04:34 +00:00
dsp_helper.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
dsp_helper.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
dsp_helper_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
dtmf_buffer.cc Delete unused includes of assert.h 2018-10-04 14:01:44 +00:00
dtmf_buffer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
dtmf_buffer_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
dtmf_tone_generator.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
dtmf_tone_generator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
dtmf_tone_generator_unittest.cc Remove simple stringstream usages. 2018-09-06 12:53:19 +00:00
expand.cc Expose delayed packet outage as a cumulative metric of samples in the new getStats API. 2018-11-27 15:10:09 +00:00
expand.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
expand_uma_logger.cc Replace rtc::Optional with absl::optional in modules/audio_coding 2018-06-19 12:46:20 +00:00
expand_uma_logger.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
expand_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
histogram.cc Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
histogram.h Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
histogram_unittest.cc Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
merge.cc Let NetEq use the PLC output from a decoder 2018-09-14 07:05:20 +00:00
merge.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
merge_unittest.cc
nack_tracker.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
nack_tracker.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
nack_tracker_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
neteq.cc Add NetEq config flag that enables RTX handling. 2019-01-10 10:04:34 +00:00
neteq_decoder_plc_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
neteq_external_decoder_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
neteq_impl.cc Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
neteq_impl.h Add get/set base min delay to neteq and acm_receiver. 2019-02-05 13:27:59 +00:00
neteq_impl_unittest.cc Refactor DelayManager into separate Histogram class and make it injectable for testing purposes. 2019-02-21 15:45:31 +00:00
neteq_network_stats_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
neteq_stereo_unittest.cc Stop using Googletest legacy APIs. 2019-01-31 13:23:33 +00:00
neteq_unittest.cc Remove webrtc::ProtoString. 2019-02-16 11:11:45 +00:00
neteq_unittest.proto
normal.cc Let NetEq use the PLC output from a decoder 2018-09-14 07:05:20 +00:00
normal.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
normal_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
packet.cc
packet.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
packet_buffer.cc Delete unused method NetEq::PacketBufferStatistics 2018-11-23 09:39:32 +00:00
packet_buffer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
packet_buffer_unittest.cc Delete enum NetEqDecoder. 2019-01-11 13:52:25 +00:00
post_decode_vad.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
post_decode_vad.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
post_decode_vad_unittest.cc
preemptive_expand.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
preemptive_expand.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
random_vector.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
random_vector.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
random_vector_unittest.cc
red_payload_splitter.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
red_payload_splitter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
red_payload_splitter_unittest.cc Delete method DecoderDatabase::RegisterPayload(...NetEqDecoder...) 2019-01-11 07:39:45 +00:00
statistics_calculator.cc Expose jitterBufferEmittedCount in addition to the existing jitterBufferDelay for getStats(). 2019-01-16 11:44:10 +00:00
statistics_calculator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
statistics_calculator_unittest.cc NetEq: Simplify the dependencies of GetNetworkStatistics 2017-09-25 20:32:12 +00:00
sync_buffer.cc Let NetEq use the PLC output from a decoder 2018-09-14 07:05:20 +00:00
sync_buffer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
sync_buffer_unittest.cc Move some numeric utility code from rtc_base/ to rtc_base/numerics/ 2017-11-22 11:21:47 +00:00
tick_timer.cc
tick_timer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
tick_timer_unittest.cc
time_stretch.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
time_stretch.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
time_stretch_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
timestamp_scaler.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
timestamp_scaler.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
timestamp_scaler_unittest.cc Delete enum NetEqDecoder. 2019-01-11 13:52:25 +00:00