AEC3: Ensure that the high-pass filter is on whenever the AEC is active

This CL ensures that the high-pass filter is on whenever the echo
controller is on. This is important as the echo controller code assumes
that the external high-pass filter is active.

The CL also corrects the ToggleAec unit test (which started failing
after this code change).

Bug: webrtc:11159, chromium:1030179
Change-Id: Ief86eda8f7c67df1c25ac1a06d2cc0778e01196d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161228
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29998}
This commit is contained in:
Per Åhgren
2019-12-04 08:34:12 +01:00
committed by Commit Bot
parent 246724b0fe
commit b810646c54
3 changed files with 9 additions and 2 deletions

View File

@ -1808,7 +1808,12 @@ void AudioProcessingImpl::InitializeTransient() {
}
void AudioProcessingImpl::InitializeHighPassFilter() {
if (submodule_states_.HighPassFilteringRequired()) {
bool high_pass_filter_needed_by_aec =
config_.echo_canceller.enabled &&
config_.echo_canceller.enforce_high_pass_filtering &&
!config_.echo_canceller.mobile_mode;
if (submodule_states_.HighPassFilteringRequired() ||
high_pass_filter_needed_by_aec) {
submodules_.high_pass_filter.reset(new HighPassFilter(num_proc_channels()));
} else {
submodules_.high_pass_filter.reset();