Avoiding cascaded software echo cancellers
This CL ensures that it is not possible to run several echo canceller
solutions in cascade inside the audio processing module.
Bug: webrtc:7776
Change-Id: I1777f97aeacb8cdf5c6c3be4bf13eefcde7d69fb
Reviewed-on: https://chromium-review.googlesource.com/527053
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18505}
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
index a96f8ff..922997e 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -1310,9 +1310,11 @@
return AudioProcessing::kStreamParameterNotSetError;
}
- RETURN_ON_ERR(public_submodules_->echo_control_mobile->ProcessCaptureAudio(
- capture_buffer, stream_delay_ms()));
-
+ if (!(private_submodules_->echo_canceller3 ||
+ public_submodules_->echo_cancellation->is_enabled())) {
+ RETURN_ON_ERR(public_submodules_->echo_control_mobile->ProcessCaptureAudio(
+ capture_buffer, stream_delay_ms()));
+ }
if (capture_nonlocked_.beamformer_enabled) {
private_submodules_->beamformer->PostFilter(capture_buffer->split_data_f());