Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Issue 2784023002: Major AEC3 render pipeline changes (Closed)

Created:
3 years, 8 months ago by peah-webrtc
Modified:
3 years, 8 months ago
Reviewers:
ivoc, aleloi
CC:
webrtc-reviews_webrtc.org, AleBzk, peah-webrtc, Andrew MacDonald, aleloi, tterriberry_mozilla.com, audio-team_agora.io, hlundin-webrtc, kwiberg-webrtc, minyue-webrtc, the sun, aluebs-webrtc, bjornv1
Target Ref:
refs/heads/master
Project:
webrtc
Visibility:
Public.

Description

Major AEC3 render pipeline changes This CL adds major render pipeline changes to the AEC3 code. The reason for these are that 1) It allows the echo removal unit to receive information about the content in bands beyond band 0, thereby allowing removal of high-frequency echoes 2) It allows more controlled handling of the render buffers, allowing proper buffer behaviour during capture glitches and clock-drift. Unfortunately, the render pipeline caused a lot of related changes in much of the rest of the AEC3 files. Most of these are, however, caused by a change of class name. Another unfortunate effect of this CL, is that a number of unittest cease to compile. I chose to temporarily solve that by removing them from the build using #if/#endif. The reason for that is that those will anyway again need to be changed in the next review, and doing like this avoids them having to be reviewed twice. BUG=webrtc:6018 Review-Url: https://codereview.webrtc.org/2784023002 Cr-Commit-Position: refs/heads/master@{#17547} Committed: https://chromium.googlesource.com/external/webrtc/+/cf02cf13a70eb5c8b8be9254a200c5e48ccfe8d8

Patch Set 1 #

Total comments: 33

Patch Set 2 : Corrected buffer lengths #

Total comments: 41

Patch Set 3 : Fixed build error in unittest #

Patch Set 4 : Fixed another unittest error #

Patch Set 5 : Changes in response to reviewer comments #

Total comments: 18

Patch Set 6 : Changes in response to reviewer comments #

Patch Set 7 : Rebase and fixed small issues found during debug build #

Patch Set 8 : Added workaround for gcc-bug #

Patch Set 9 : Disabled DEATH tests that caused issues due to bug on bots and added initialization of unititialize… #

Patch Set 10 : Disabled one more DEATH test that caused issues due to bug on bots #

Unified diffs Side-by-side diffs Delta from patch set Stats (+991 lines, -1237 lines) Patch
M webrtc/modules/audio_processing/BUILD.gn View 5 chunks +5 lines, -3 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/adaptive_fir_filter.h View 2 chunks +7 lines, -7 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/adaptive_fir_filter.cc View 6 chunks +6 lines, -6 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/aec3_common.h View 1 2 chunks +18 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/aec_state.h View 2 chunks +3 lines, -3 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/aec_state.cc View 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/audio_processing/aec3/aec_state_unittest.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/block_processor.h View 1 2 3 4 5 1 chunk +3 lines, -3 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/block_processor.cc View 1 2 3 4 5 6 5 chunks +85 lines, -34 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/block_processor_unittest.cc View 1 2 3 4 5 6 7 8 9 8 chunks +13 lines, -22 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/decimator_by_4.h View 1 chunk +1 line, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/decimator_by_4.cc View 1 chunk +4 lines, -4 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/decimator_by_4_unittest.cc View 2 chunks +2 lines, -2 lines 0 comments Download
A webrtc/modules/audio_processing/aec3/downsampled_render_buffer.h View 1 2 3 4 5 1 chunk +30 lines, -0 lines 0 comments Download
A webrtc/modules/audio_processing/aec3/downsampled_render_buffer.cc View 1 2 3 4 5 1 chunk +19 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_canceller3.h View 2 chunks +3 lines, -4 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_canceller3.cc View 1 2 3 4 5 6 7 10 chunks +40 lines, -39 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc View 1 2 3 4 5 6 7 8 17 chunks +36 lines, -56 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_path_delay_estimator.h View 2 chunks +8 lines, -4 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_path_delay_estimator.cc View 2 chunks +8 lines, -13 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc View 1 2 3 4 5 8 chunks +60 lines, -29 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_remover.h View 2 chunks +3 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_remover.cc View 1 2 3 4 5 6 7 8 9 chunks +16 lines, -21 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/echo_remover_unittest.cc View 1 2 3 4 5 7 chunks +33 lines, -63 lines 0 comments Download
D webrtc/modules/audio_processing/aec3/fft_buffer.h View 1 chunk +0 lines, -70 lines 0 comments Download
D webrtc/modules/audio_processing/aec3/fft_buffer.cc View 1 chunk +0 lines, -72 lines 0 comments Download
D webrtc/modules/audio_processing/aec3/fft_buffer_unittest.cc View 1 chunk +0 lines, -76 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/main_filter_update_gain.h View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/main_filter_update_gain.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/matched_filter.h View 1 2 3 4 3 chunks +6 lines, -13 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/matched_filter.cc View 2 chunks +19 lines, -25 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/matched_filter_lag_aggregator.h View 1 chunk +3 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/matched_filter_unittest.cc View 1 2 3 4 5 4 chunks +37 lines, -18 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/mock/mock_block_processor.h View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M webrtc/modules/audio_processing/aec3/mock/mock_echo_remover.h View 2 chunks +3 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/mock/mock_render_delay_buffer.h View 1 2 3 4 5 2 chunks +23 lines, -10 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/mock/mock_render_delay_controller.h View 2 chunks +6 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/power_echo_model.h View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/power_echo_model.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/power_echo_model_unittest.cc View 1 2 2 chunks +3 lines, -91 lines 0 comments Download
A + webrtc/modules/audio_processing/aec3/render_buffer.h View 1 2 3 4 2 chunks +27 lines, -16 lines 0 comments Download
A + webrtc/modules/audio_processing/aec3/render_buffer.cc View 1 2 3 4 3 chunks +34 lines, -12 lines 0 comments Download
A webrtc/modules/audio_processing/aec3/render_buffer_unittest.cc View 1 2 3 4 1 chunk +46 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_delay_buffer.h View 1 2 3 4 5 1 chunk +22 lines, -20 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_delay_buffer.cc View 1 2 3 4 5 6 1 chunk +148 lines, -46 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_delay_buffer_unittest.cc View 1 2 3 4 5 5 chunks +16 lines, -227 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_delay_controller.h View 2 chunks +10 lines, -7 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_delay_controller.cc View 5 chunks +31 lines, -67 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_delay_controller_unittest.cc View 1 2 3 4 5 6 7 8 7 chunks +79 lines, -112 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_signal_analyzer.h View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_signal_analyzer.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/render_signal_analyzer_unittest.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/residual_echo_estimator.h View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/residual_echo_estimator.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc View 2 chunks +4 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.h View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/shadow_filter_update_gain.cc View 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/subtractor.h View 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/subtractor.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/subtractor_unittest.cc View 2 chunks +4 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/suppression_gain.h View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
M webrtc/modules/audio_processing/aec3/suppression_gain.cc View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec3/suppression_gain_unittest.cc View 1 2 3 4 1 chunk +2 lines, -1 line 0 comments Download
M webrtc/modules/audio_processing/audio_processing_impl.cc View 1 2 3 4 5 6 2 chunks +3 lines, -4 lines 0 comments Download
M webrtc/modules/audio_processing/test/aec_dump_based_simulator.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download

Dependent Patchsets:

Messages

Total messages: 42 (25 generated)
peah-webrtc
Hi, This is the CL for the AEC3 render pipeline changes. There are many files, ...
3 years, 8 months ago (2017-03-30 05:36:57 UTC) #4
peah-webrtc
Sorry, but there were two lurking errors. One build error and one failing unittest. Those ...
3 years, 8 months ago (2017-03-30 11:48:15 UTC) #9
ivoc
Looks pretty good overall! See some comments below. https://codereview.webrtc.org/2784023002/diff/20001/webrtc/modules/audio_processing/aec3/block_processor.cc File webrtc/modules/audio_processing/aec3/block_processor.cc (right): https://codereview.webrtc.org/2784023002/diff/20001/webrtc/modules/audio_processing/aec3/block_processor.cc#newcode126 webrtc/modules/audio_processing/aec3/block_processor.cc:126: old_delay ...
3 years, 8 months ago (2017-03-31 13:58:32 UTC) #14
peah-webrtc
Thanks for the comments! I've uploaded a new patch in with changes in response to ...
3 years, 8 months ago (2017-04-03 08:02:33 UTC) #15
ivoc
LGTM, I had another look and I couldn't find much to complain about. See one ...
3 years, 8 months ago (2017-04-03 16:09:07 UTC) #16
aleloi
A few comments. https://codereview.webrtc.org/2784023002/diff/80001/webrtc/modules/audio_processing/aec3/block_processor.cc File webrtc/modules/audio_processing/aec3/block_processor.cc (right): https://codereview.webrtc.org/2784023002/diff/80001/webrtc/modules/audio_processing/aec3/block_processor.cc#newcode138 webrtc/modules/audio_processing/aec3/block_processor.cc:138: void BlockProcessorImpl::BufferRender(std::vector<std::vector<float>>* block) { I think ...
3 years, 8 months ago (2017-04-04 12:18:50 UTC) #17
peah-webrtc
Thanks for the comments! I have uploaded a new patch with the related changes. PTAL ...
3 years, 8 months ago (2017-04-04 13:57:12 UTC) #18
aleloi
Can't find anything to complain about either. LGTM!
3 years, 8 months ago (2017-04-05 11:46:47 UTC) #19
peah-webrtc
Thanks for the reviews! I added one more patch some minor changes that were not ...
3 years, 8 months ago (2017-04-05 12:41:52 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2784023002/120001
3 years, 8 months ago (2017-04-05 12:42:24 UTC) #24
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_rel on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/android_arm64_rel/builds/17252) android_compile_x86_rel on master.tryserver.webrtc (JOB_FAILED, ...
3 years, 8 months ago (2017-04-05 12:46:34 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2784023002/140001
3 years, 8 months ago (2017-04-05 13:23:38 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: linux_msan on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/linux_msan/builds/19401)
3 years, 8 months ago (2017-04-05 13:42:57 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2784023002/160001
3 years, 8 months ago (2017-04-05 17:53:42 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: linux_memcheck on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/linux_memcheck/builds/6948)
3 years, 8 months ago (2017-04-05 18:36:31 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2784023002/180001
3 years, 8 months ago (2017-04-05 20:56:43 UTC) #39
commit-bot: I haz the power
3 years, 8 months ago (2017-04-05 21:18:14 UTC) #42
Message was sent while issue was closed.
Committed patchset #10 (id:180001) as
https://chromium.googlesource.com/external/webrtc/+/cf02cf13a70eb5c8b8be9254a...

Powered by Google App Engine
This is Rietveld 408576698