webrtc/modules/audio_processing/aec3
Sam Zackrisson ff571c60a9 AEC3: Fix render delay buffer alignment issue at call start
Internal counters in the RenderDelayBuffer can slip out of sync with external counters, leading to buffer misalignment.
This CL gives the RenderDelayBuffer an opportunity to update its counters.

Tested:
Passes: modules_unittests --gtest_filter=BlockProcessor.*
Fails as expected due to new unit test: modules_unittests --gtest_filter=BlockProcessor.* --force_fieldtrials="WebRTC-Aec3RenderBufferCallCounterUpdateKillSwitch/Enabled/"

audioproc_f with default AEC settings has been verified to be bit-exact on a large number of aecdumps.

Bug: webrtc:11803
Change-Id: I9363b834c8c8c934add0335013df60bf131da4bc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180126
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31795}
2020-07-27 15:19:58 +00:00
..
mock AEC3: Fix render delay buffer alignment issue at call start 2020-07-27 15:19:58 +00:00
adaptive_fir_filter.cc AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
adaptive_fir_filter.h AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
adaptive_fir_filter_erl.cc AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
adaptive_fir_filter_erl.h AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
adaptive_fir_filter_erl_unittest.cc AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
adaptive_fir_filter_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
aec3_common.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
aec3_common.h AEC3: Remove metrics that are not used for analysis 2020-01-02 16:23:43 +00:00
aec3_fft.cc Reland "Change to using the new Ooura constructor" 2020-06-03 12:27:14 +00:00
aec3_fft.h Reland "Change to using the new Ooura constructor" 2020-06-03 12:27:14 +00:00
aec3_fft_unittest.cc Rename several more tests that use EXPECT_DEATH to *DeathTest. 2020-05-18 16:10:04 +00:00
aec_state.cc AEC3: Add transparency-related killswitches 2020-04-01 17:32:36 +00:00
aec_state.h AEC3: Add transparency-related killswitches 2020-04-01 17:32:36 +00:00
aec_state_unittest.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
alignment_mixer.cc AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
alignment_mixer.h AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
alignment_mixer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
api_call_jitter_metrics.cc AEC3: Add metrics for API call jitter 2018-11-27 19:52:08 +00:00
api_call_jitter_metrics.h AEC3: Add metrics for API call jitter 2018-11-27 19:52:08 +00:00
api_call_jitter_metrics_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
block_buffer.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
block_buffer.h Remove completed TODOs 2019-09-06 14:53:11 +00:00
block_delay_buffer.cc AEC3: Added multi-channel support for the capture delay functionality 2020-01-28 15:39:26 +00:00
block_delay_buffer.h AEC3: Added multi-channel support for the capture delay functionality 2020-01-28 15:39:26 +00:00
block_delay_buffer_unittest.cc AEC3: Added multi-channel support for the capture delay functionality 2020-01-28 15:39:26 +00:00
block_framer.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
block_framer.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
block_framer_unittest.cc Rename several more tests that use EXPECT_DEATH to *DeathTest. 2020-05-18 16:10:04 +00:00
block_processor.cc AEC3: Fix render delay buffer alignment issue at call start 2020-07-27 15:19:58 +00:00
block_processor.h Allow extracting the linear AEC output 2019-11-13 11:33:53 +00:00
block_processor_metrics.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
block_processor_metrics.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
block_processor_metrics_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
block_processor_unittest.cc AEC3: Fix render delay buffer alignment issue at call start 2020-07-27 15:19:58 +00:00
BUILD.gn Use absl_deps in order to preapre to the Abseil component build release. 2020-06-08 12:59:40 +00:00
clockdrift_detector.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
clockdrift_detector.h IWYU: size_t is defined in stddef.h 2020-06-03 08:43:50 +00:00
clockdrift_detector_unittest.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
coarse_filter_update_gain.cc AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
coarse_filter_update_gain.h AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
coarse_filter_update_gain_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
comfort_noise_generator.cc AEC3: Added parametrization of the comfort noise floor 2020-03-25 08:56:17 +00:00
comfort_noise_generator.h AEC3: Added parametrization of the comfort noise floor 2020-03-25 08:56:17 +00:00
comfort_noise_generator_unittest.cc AEC3: Added parametrization of the comfort noise floor 2020-03-25 08:56:17 +00:00
decimator.cc AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
decimator.h AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
decimator_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
delay_estimate.h Inform the AEC3 echo remover about the status of the estimated delay 2018-02-21 17:08:36 +00:00
dominant_nearend_detector.cc AEC3: Sub-band nearend detector 2019-11-25 16:26:49 +00:00
dominant_nearend_detector.h AEC3: Sub-band nearend detector 2019-11-25 16:26:49 +00:00
downsampled_render_buffer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
downsampled_render_buffer.h Format almost everything. 2019-07-08 13:45:15 +00:00
echo_audibility.cc AEC3: Correct the number of render channels in the echo audibility code 2019-12-02 13:13:11 +00:00
echo_audibility.h AEC3: Made EchoAudibility multichannel 2019-10-15 09:25:46 +00:00
echo_canceller3.cc AEC3: Remove parameters for the legacy filter naming 2020-04-08 07:34:08 +00:00
echo_canceller3.h AEC3: Adding field-trial-based overrides for transparency parameters 2020-04-06 14:05:28 +00:00
echo_canceller3_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
echo_path_delay_estimator.cc AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
echo_path_delay_estimator.h AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
echo_path_delay_estimator_unittest.cc Rename EchoPathDelayEstimator to EchoPathDelayEstimatorDeathTest. 2020-05-18 14:27:14 +00:00
echo_path_variability.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_path_variability.h Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_path_variability_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
echo_remover.cc AEC3: Added parametrization of the comfort noise floor 2020-03-25 08:56:17 +00:00
echo_remover.h Allow extracting the linear AEC output 2019-11-13 11:33:53 +00:00
echo_remover_metrics.cc AEC3: Remove metrics that are not used for analysis 2020-01-02 16:23:43 +00:00
echo_remover_metrics.h AEC3: Remove metrics that are not used for analysis 2020-01-02 16:23:43 +00:00
echo_remover_metrics_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
echo_remover_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
erl_estimator.cc AEC3: Multi channel ERL estimator 2019-10-18 16:03:46 +00:00
erl_estimator.h AEC3: Multi channel ERL estimator 2019-10-18 16:03:46 +00:00
erl_estimator_unittest.cc Add parameterization for three multi channel AEC3 unit tests 2020-01-24 12:26:46 +00:00
erle_estimator.cc AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
erle_estimator.h AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
erle_estimator_unittest.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
fft_buffer.cc Add multi-channel to FftBuffer 2019-09-05 14:10:04 +00:00
fft_buffer.h Add multi-channel to FftBuffer 2019-09-05 14:10:04 +00:00
fft_data.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
fft_data_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
filter_analyzer.cc AEC3: Correct peak index at filter size reductions 2020-03-31 12:23:40 +00:00
filter_analyzer.h AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
filter_analyzer_unittest.cc AEC3: General cleanup after multichannel changes 2019-10-18 07:43:49 +00:00
frame_blocker.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
frame_blocker.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
frame_blocker_unittest.cc Rename several more tests that use EXPECT_DEATH to *DeathTest. 2020-05-18 16:10:04 +00:00
fullband_erle_estimator.cc AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
fullband_erle_estimator.h AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
matched_filter.cc Reduce some logging at INFO level by moving log statements 2019-12-12 21:54:06 +00:00
matched_filter.h Format almost everything. 2019-07-08 13:45:15 +00:00
matched_filter_lag_aggregator.cc Dump histogram data in AEC3 delay estimator 2019-02-11 14:13:38 +00:00
matched_filter_lag_aggregator.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
matched_filter_lag_aggregator_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
matched_filter_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
moving_average.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
moving_average.h Format almost everything. 2019-07-08 13:45:15 +00:00
moving_average_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
nearend_detector.h AEC3: Sub-band nearend detector 2019-11-25 16:26:49 +00:00
refined_filter_update_gain.cc AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
refined_filter_update_gain.h AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
refined_filter_update_gain_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
render_buffer.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
render_buffer.h AEC3: Update SpectrumBuffer API 2019-10-18 07:01:42 +00:00
render_buffer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
render_delay_buffer.cc AEC3: Fix render delay buffer alignment issue at call start 2020-07-27 15:19:58 +00:00
render_delay_buffer.h AEC3: Fix render delay buffer alignment issue at call start 2020-07-27 15:19:58 +00:00
render_delay_buffer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
render_delay_controller.cc AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
render_delay_controller.h AEC3: Add signal dependent mixing before alignment 2019-12-03 11:30:48 +00:00
render_delay_controller_metrics.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
render_delay_controller_metrics.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
render_delay_controller_metrics_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
render_delay_controller_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
render_signal_analyzer.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
render_signal_analyzer.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
render_signal_analyzer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
residual_echo_estimator.cc AEC3: Add transparency-related killswitches 2020-04-01 17:32:36 +00:00
residual_echo_estimator.h AEC3: Add transparency-related killswitches 2020-04-01 17:32:36 +00:00
residual_echo_estimator_unittest.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
reverb_decay_estimator.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
reverb_decay_estimator.h AEC3: Ensure that the data size in the reverb computer is not fixed 2019-12-19 16:35:56 +00:00
reverb_frequency_response.cc Format almost everything. 2019-07-08 13:45:15 +00:00
reverb_frequency_response.h AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
reverb_model.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
reverb_model.h AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
reverb_model_estimator.cc AEC3: Add support for multiple channels to the reverb modelling 2019-10-11 21:49:58 +00:00
reverb_model_estimator.h AEC3: Add support for multiple channels to the reverb modelling 2019-10-11 21:49:58 +00:00
reverb_model_estimator_unittest.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
signal_dependent_erle_estimator.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
signal_dependent_erle_estimator.h AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
signal_dependent_erle_estimator_unittest.cc AEC3: Rename main filter 2020-03-20 13:25:01 +00:00
spectrum_buffer.cc AEC3: Update SpectrumBuffer API 2019-10-18 07:01:42 +00:00
spectrum_buffer.h AEC3: Update SpectrumBuffer API 2019-10-18 07:01:42 +00:00
stationarity_estimator.cc AEC3: Update SpectrumBuffer API 2019-10-18 07:01:42 +00:00
stationarity_estimator.h AEC3: Update SpectrumBuffer API 2019-10-18 07:01:42 +00:00
subband_erle_estimator.cc AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
subband_erle_estimator.h AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
subband_nearend_detector.cc AEC3: Sub-band nearend detector 2019-11-25 16:26:49 +00:00
subband_nearend_detector.h AEC3: Sub-band nearend detector 2019-11-25 16:26:49 +00:00
subtractor.cc AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
subtractor.h AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
subtractor_output.cc AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
subtractor_output.h AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
subtractor_output_analyzer.cc AEC3: Rename shadow filter 2020-03-20 15:26:14 +00:00
subtractor_output_analyzer.h AEC3: Add multichannel support in the ERLE estimation 2019-10-17 17:34:18 +00:00
subtractor_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
suppression_filter.cc AEC3: Suppression filter handles multiple channels 2019-09-24 13:50:04 +00:00
suppression_filter.h Remove unused instance of Ooura FFT 2020-06-03 00:33:54 +00:00
suppression_filter_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
suppression_gain.cc AEC3: Avoid heap-allocations in sums of the values in nested vectors 2020-02-13 21:53:26 +00:00
suppression_gain.h AEC3: Sub-band nearend detector 2019-11-25 16:26:49 +00:00
suppression_gain_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
vector_math.h Format almost everything. 2019-07-08 13:45:15 +00:00
vector_math_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00