Index: webrtc/modules/audio_processing/audio_processing_impl.cc |
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc |
index f9cc98faa022846ea9e42e0f4eeba2945b8ba3ea..636d6ca5f0090a1cadac8d4b9c488523418d0dad 100644 |
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc |
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc |
@@ -562,11 +562,17 @@ int AudioProcessingImpl::InitializeLocked(const ProcessingConfig& config) { |
capture_nonlocked_.capture_processing_format = |
StreamConfig(capture_processing_rate); |
- int render_processing_rate = FindNativeProcessRateToUse( |
- std::min(formats_.api_format.reverse_input_stream().sample_rate_hz(), |
- formats_.api_format.reverse_output_stream().sample_rate_hz()), |
- submodule_states_.CaptureMultiBandSubModulesActive() || |
- submodule_states_.RenderMultiBandSubModulesActive()); |
+ int render_processing_rate; |
+ if (!config_.echo_canceller3.enabled) { |
+ render_processing_rate = FindNativeProcessRateToUse( |
+ std::min(formats_.api_format.reverse_input_stream().sample_rate_hz(), |
+ formats_.api_format.reverse_output_stream().sample_rate_hz()), |
+ submodule_states_.CaptureMultiBandSubModulesActive() || |
+ submodule_states_.RenderMultiBandSubModulesActive()); |
+ } else { |
+ render_processing_rate = capture_processing_rate; |
+ } |
+ |
// TODO(aluebs): Remove this restriction once we figure out why the 3-band |
// splitting filter degrades the AEC performance. |
if (render_processing_rate > kSampleRate32kHz && |
@@ -575,6 +581,7 @@ int AudioProcessingImpl::InitializeLocked(const ProcessingConfig& config) { |
? kSampleRate32kHz |
: kSampleRate16kHz; |
} |
+ |
// If the forward sample rate is 8 kHz, the render stream is also processed |
// at this rate. |
if (capture_nonlocked_.capture_processing_format.sample_rate_hz() == |