webrtc/modules/audio_coding/neteq
Alessio Bazzica 8f319a3472 Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.""
This reverts commit fab3460a82.

Reason for revert: fix downstream instead

Original change's description:
> Revert "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.""
> 
> This reverts commit 9973933d2e.
> 
> Reason for revert: breaking downstream projects and not reviewed by direct owners
> 
> Original change's description:
> > Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
> > 
> > This reverts commit 24192c267a.
> > 
> > Reason for revert: Analyzed the performance regression in more detail.
> > 
> > Most of the regression comes from the extra RtpPacketInfos-related memory allocations in every `NetEq::GetAudio()` call. Commit 1796a820f6 has removed roughly 2/3rds of the extra allocations from the impacted perf tests. Remaining perf impact is expected to be about "8 microseconds of CPU time per second" on the Linux benchmarking machines and "15 us per second" on Windows/Mac.
> > 
> > There are options to optimize further but they are unlikely worth doing. Note for example that `NetEqPerformanceTest` uses the PCM codec while the real-world use cases would likely use the much heavier Opus codec. The numbers from `OpusSpeedTest` and `NetEqPerformanceTest` suggest that Opus decoding is about 10x as expensive as NetEq overall.
> > 
> > Original change's description:
> > > Revert "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
> > >
> > > This reverts commit 3e8ef940fe.
> > >
> > > Reason for revert: This CL causes a performance regression in NetEq, see https://bugs.chromium.org/p/chromium/issues/detail?id=982260.
> > >
> > > Original change's description:
> > > > Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.
> > > >
> > > > This change adds the plumbing of RtpPacketInfo from ChannelReceive::OnRtpPacket() to ChannelReceive::GetAudioFrameWithInfo() for audio. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.
> > > >
> > > > Bug: webrtc:10668
> > > > Change-Id: I03385d6865bbc7bfbef7634f88de820a934f787a
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139890
> > > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > > Reviewed-by: Minyue Li <minyue@webrtc.org>
> > > > Commit-Queue: Chen Xing <chxg@google.com>
> > > > Cr-Commit-Position: refs/heads/master@{#28434}
> > >
> > > TBR=kwiberg@webrtc.org,stefan@webrtc.org,minyue@webrtc.org,chxg@google.com
> > >
> > > Bug: webrtc:10668, chromium:982260
> > > Change-Id: I5e2cfde78c59d1123e21869564d76ed3f6193a5c
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145339
> > > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > > Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#28561}
> > 
> > TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: webrtc:10668, chromium:982260
> > Change-Id: Ie375a0b327ee368317bf3a04b2f1415c3a974470
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146707
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Commit-Queue: Chen Xing <chxg@google.com>
> > Cr-Commit-Position: refs/heads/master@{#28664}
> 
> TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com
> 
> Change-Id: I652cb0814d83b514d3bee34e65ca3bb693099b22
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10668, chromium:982260
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146712
> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28671}

TBR=alessiob@webrtc.org,kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com

Change-Id: Id43b7b3da79b4f48004b41767482bae1c1fa1e16
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10668, chromium:982260
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146713
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28672}
2019-07-24 16:47:13 +00:00
..
include Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
mock Format almost everything. 2019-07-08 13:45:15 +00:00
test Migrate WebRTC test infra to ABSL_FLAG. 2019-07-19 06:54:04 +00:00
tools Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +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 AudioDecoderOpus: Add support for 16 kHz output sample rate 2019-05-29 12:42:38 +00:00
audio_multi_vector_unittest.cc Stop using Googletest legacy APIs. 2019-01-31 13:23:33 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
audio_vector_unittest.cc Delete unused includes of assert.h 2018-10-04 14:01:44 +00:00
audio_vector.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
audio_vector.h Format almost everything. 2019-07-08 13:45:15 +00:00
background_noise_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
background_noise.cc NetEQ: BackgroundNoise::Update returns true when the filter is updated 2019-06-28 10:11:33 +00:00
background_noise.h Format almost everything. 2019-07-08 13:45:15 +00:00
buffer_level_filter_unittest.cc Reland "Reland "Change buffer level filter to store current level in number of samples."" 2019-06-27 09:16:27 +00:00
buffer_level_filter.cc Format almost everything. 2019-07-08 13:45:15 +00:00
buffer_level_filter.h Reland "Reland "Change buffer level filter to store current level in number of samples."" 2019-06-27 09:16:27 +00:00
comfort_noise_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
comfort_noise.cc Format almost everything. 2019-07-08 13:45:15 +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
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_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
decision_logic.cc Format almost everything. 2019-07-08 13:45:15 +00:00
decision_logic.h Improve buffer level estimation with DTX and add CNG time stretching. 2019-07-03 15:12:09 +00:00
decoder_database_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
decoder_database.cc Format almost everything. 2019-07-08 13:45:15 +00:00
decoder_database.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
defines.h Let NetEq use the PLC output from a decoder 2018-09-14 07:05:20 +00:00
delay_manager_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
delay_manager.cc Format almost everything. 2019-07-08 13:45:15 +00:00
delay_manager.h Format almost everything. 2019-07-08 13:45:15 +00:00
delay_peak_detector_unittest.cc Add NetEq config flag that enables RTX handling. 2019-01-10 10:04:34 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
dsp_helper_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +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
dtmf_buffer_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
dtmf_buffer.cc Delete unused includes of assert.h 2018-10-04 14:01:44 +00:00
dtmf_buffer.h Format almost everything. 2019-07-08 13:45:15 +00:00
dtmf_tone_generator_unittest.cc Remove simple stringstream usages. 2018-09-06 12:53:19 +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
expand_uma_logger.cc Format almost everything. 2019-07-08 13:45:15 +00:00
expand_uma_logger.h Format almost everything. 2019-07-08 13:45:15 +00:00
expand_unittest.cc Initialize signal processing function pointers statically 2019-06-28 14:20:03 +00:00
expand.cc NetEq: Create an audio interruption metric 2019-04-26 09:48:05 +00:00
expand.h Format almost everything. 2019-07-08 13:45:15 +00:00
histogram_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
histogram.cc Format almost everything. 2019-07-08 13:45:15 +00:00
histogram.h Improve NetEq network adaptation in the beginning of the call. 2019-05-23 14:19:30 +00:00
merge_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +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
nack_tracker_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
nack_tracker.cc Format almost everything. 2019-07-08 13:45:15 +00:00
nack_tracker.h Format almost everything. 2019-07-08 13:45:15 +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_impl_unittest.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
neteq_impl.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
neteq_impl.h Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
neteq_network_stats_unittest.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
neteq_stereo_unittest.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
neteq_unittest.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
neteq_unittest.proto
neteq.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
normal_unittest.cc Initialize signal processing function pointers statically 2019-06-28 14:20:03 +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
packet_buffer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
packet_buffer.cc Improve buffer level estimation with DTX and add CNG time stretching. 2019-07-03 15:12:09 +00:00
packet_buffer.h Improve buffer level estimation with DTX and add CNG time stretching. 2019-07-03 15:12:09 +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 Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +00:00
post_decode_vad_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +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
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_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +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
red_payload_splitter_unittest.cc Delete method DecoderDatabase::RegisterPayload(...NetEqDecoder...) 2019-01-11 07:39:45 +00:00
red_payload_splitter.cc Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."" 2019-07-24 16:47:13 +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
statistics_calculator_unittest.cc Reland "Piping audio interruption metrics to API layer" 2019-04-29 15:39:50 +00:00
statistics_calculator.cc Format almost everything. 2019-07-08 13:45:15 +00:00
statistics_calculator.h NetEq: Create an audio interruption metric 2019-04-26 09:48:05 +00:00
sync_buffer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
sync_buffer.cc Format almost everything. 2019-07-08 13:45:15 +00:00
sync_buffer.h Format almost everything. 2019-07-08 13:45:15 +00:00
tick_timer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
time_stretch_unittest.cc Format almost everything. 2019-07-08 13:45:15 +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
timestamp_scaler_unittest.cc Format almost everything. 2019-07-08 13:45:15 +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