webrtc/modules/audio_processing/aec3
Per Åhgren 78026754a7 AEC3: Utilize shadow filter output to respond to audio path changes
This CL adds functionality to use the shadow filter output instead
of the main filter output for cases when the former is better than
the latter. One case when that happens is when there have been an
echo path change, either in the acoustic path, in the audio buffers
or due to some active audio processing effects being applied on
the device.

The CL causes less echo leaks, in particular on devices with
active render processing.

Bug: webrtc:9581,chromium:869821
Change-Id: Icb8df1b94141598da82dc188051ac59e43338938
Reviewed-on: https://webrtc-review.googlesource.com/91820
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24166}
2018-08-01 15:20:33 +00:00
..
mock Enabling clang::find_bad_constructs for AEC3. 2018-07-17 08:49:15 +00:00
adaptive_fir_filter.cc AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
adaptive_fir_filter.h AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
adaptive_fir_filter_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
aec3_common.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
aec3_common.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
aec3_fft.cc Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec3_fft.h Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec3_fft_unittest.cc Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec_state.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
aec_state.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
aec_state_unittest.cc AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
block_framer.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_framer.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_framer_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
block_processor.h Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
block_processor_metrics.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor_metrics.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor_metrics_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
block_processor_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
BUILD.gn Explicitly add -mfpu=neon to all targets that use NEON 2018-08-01 13:15:42 +00:00
cascaded_biquad_filter.cc AEC3: Move decimator filters to the new notation 2018-06-07 08:09:17 +00:00
cascaded_biquad_filter.h AEC3: Move decimator filters to the new notation 2018-06-07 08:09:17 +00:00
cascaded_biquad_filter_unittest.cc AEC3: Move decimator filters to the new notation 2018-06-07 08:09:17 +00:00
coherence_gain.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
coherence_gain.h Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
comfort_noise_generator.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
comfort_noise_generator.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
comfort_noise_generator_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
decimator.cc AEC3: Avoid static initializers 2018-06-07 18:13:01 +00:00
decimator.h AEC3: Delay estimator uses bandpass filtered signal with downsampling factor 8 2018-05-25 09:31:38 +00:00
decimator_unittest.cc AEC3: High-pass filter delay estimator signals 2018-05-18 14:33:26 +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
downsampled_render_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
downsampled_render_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
echo_audibility.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
echo_audibility.h AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
echo_canceller3.cc AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
echo_canceller3.h Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
echo_canceller3_unittest.cc Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
echo_path_delay_estimator.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
echo_path_delay_estimator.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
echo_path_delay_estimator_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +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 Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_remover.cc AEC3: Utilize shadow filter output to respond to audio path changes 2018-08-01 15:20:33 +00:00
echo_remover.h AEC3: Adding explicit handling of microphone gain changes 2018-07-16 16:02:07 +00:00
echo_remover_metrics.cc AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
echo_remover_metrics.h Added ERL and ERLE metrics to UMA. 2017-11-29 09:06:59 +00:00
echo_remover_metrics_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
echo_remover_unittest.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
erl_estimator.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
erl_estimator.h Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
erl_estimator_unittest.cc Compute ERL over all frequency bins in AEC3. 2017-11-16 14:40:33 +00:00
erle_estimator.cc AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
erle_estimator.h AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
erle_estimator_unittest.cc AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
fft_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
fft_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
fft_data.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
fft_data_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
filter_analyzer.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
filter_analyzer.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
frame_blocker.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
frame_blocker.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
frame_blocker_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
main_filter_update_gain.cc AEC3: Adding explicit handling of microphone gain changes 2018-07-16 16:02:07 +00:00
main_filter_update_gain.h Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
main_filter_update_gain_unittest.cc AEC3: Refactor the code for analyzing filter convergence 2018-07-12 23:13:08 +00:00
matched_filter.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
matched_filter.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
matched_filter_lag_aggregator.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
matched_filter_lag_aggregator.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
matched_filter_lag_aggregator_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
matched_filter_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
matrix_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
matrix_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
moving_average.cc AEC3: Average the spectrum of multiple nearend frames in the suppressor. 2018-06-19 11:50:30 +00:00
moving_average.h AEC3: Average the spectrum of multiple nearend frames in the suppressor. 2018-06-19 11:50:30 +00:00
moving_average_unittest.cc AEC3: Unittests for MovingAverage 2018-06-19 12:45:10 +00:00
render_buffer.cc Simplified the usage of the render buffer in AEC3 2017-12-20 14:46:36 +00:00
render_buffer.h Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
render_buffer_unittest.cc Simplified the usage of the render buffer in AEC3 2017-12-20 14:46:36 +00:00
render_delay_buffer.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_buffer.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_buffer_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
render_delay_controller.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_controller.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_controller_metrics.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_controller_metrics.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_controller_metrics_unittest.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_delay_controller_unittest.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_signal_analyzer.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_signal_analyzer.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
render_signal_analyzer_unittest.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
residual_echo_estimator.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
residual_echo_estimator.h AEC3: Increasing the transparency during call startup 2018-07-27 14:18:42 +00:00
residual_echo_estimator_unittest.cc AEC3: Refactor the code for analyzing filter convergence 2018-07-12 23:13:08 +00:00
reverb_decay_estimator.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_decay_estimator.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_frequency_response.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_frequency_response.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_model.cc AEC3: Reverb modeling: Including the freq shape of the tails when modeling the reverberation 2018-06-26 16:17:45 +00:00
reverb_model.h AEC3: Reverb modeling: Including the freq shape of the tails when modeling the reverberation 2018-06-26 16:17:45 +00:00
reverb_model_estimator.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_model_estimator.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_model_estimator_unittest.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_model_fallback.cc AEC3: Changes to how the reverberation decay is applied. 2018-06-13 14:54:04 +00:00
reverb_model_fallback.h AEC3: Changes to how the reverberation decay is applied. 2018-06-13 14:54:04 +00:00
shadow_filter_update_gain.cc Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
shadow_filter_update_gain.h Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
shadow_filter_update_gain_unittest.cc Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
skew_estimator.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
skew_estimator.h Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
skew_estimator_unittest.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
stationarity_estimator.cc AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
stationarity_estimator.h AEC3: Reverberation model: Changes on the decay estimation. 2018-07-04 10:04:32 +00:00
subtractor.cc AEC3: Utilize shadow filter output to respond to audio path changes 2018-08-01 15:20:33 +00:00
subtractor.h AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
subtractor_output.cc AEC3: Utilize shadow filter output to respond to audio path changes 2018-08-01 15:20:33 +00:00
subtractor_output.h AEC3: Utilize shadow filter output to respond to audio path changes 2018-08-01 15:20:33 +00:00
subtractor_output_analyzer.cc AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
subtractor_output_analyzer.h AEC3: Improved the accuracy of the adaptive filter 2018-07-26 14:51:32 +00:00
subtractor_unittest.cc AEC3: Refactor the code for analyzing filter convergence 2018-07-12 23:13:08 +00:00
suppression_filter.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
suppression_filter.h Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
suppression_filter_unittest.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
suppression_gain.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
suppression_gain.h AEC3: Simplified suppression gain calculation 2018-07-04 07:07:55 +00:00
suppression_gain_limiter.cc AEC3: Gain limiter: Improving the behavior of the gain limiter. 2018-05-25 15:49:38 +00:00
suppression_gain_limiter.h AEC3: Gain limiter: Improving the behavior of the gain limiter. 2018-05-25 15:49:38 +00:00
suppression_gain_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
vector_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
vector_buffer.h AEC3: Gain limiter: Improving the behavior of the gain limiter. 2018-05-25 15:49:38 +00:00
vector_math.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
vector_math_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00