webrtc/modules/audio_coding/neteq
Jakob Ivarsson e98954c35e Prevent updating state in the delay manager if the packet was reordered.
Currently, if the last packet was reordered (e.g. due to retransmission) then the next packet's inter-arrival time will be estimated incorrectly due to the jump in sequence numbers. This change prevents that by not resetting the stopwatch on reordered packets.

This will also better estimate inter-arrival times when we have multiple reordered packets in a burst. Currently we would only measure the iat of the first reordered packet correctly and not the ones coming after it.

There is a slight risk introducing this: If we would receive an out of order packet far into the future (in sequence numbers) and then continue getting packets in the normal order, then we would not update the current sequence number for these and incorrectly estimate their inter-arrival times since they would all be considered reordered.

Change-Id: Ic938a37cbddf1cb9c30b610218f56794568d3d01
Bug: webrtc:10178
Reviewed-on: https://webrtc-review.googlesource.com/c/119949
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26572}
2019-02-06 15:30:54 +00:00
..
include Add get/set base min delay to neteq and acm_receiver. 2019-02-05 13:27:59 +00:00
mock Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +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 Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +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 Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +00:00
delay_manager.h Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +00:00
delay_manager_unittest.cc Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +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
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +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 Prevent updating state in the delay manager if the packet was reordered. 2019-02-06 15:30:54 +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 Expose jitterBufferEmittedCount in addition to the existing jitterBufferDelay for getStats(). 2019-01-16 11:44:10 +00:00
neteq_unittest.proto Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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 Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
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