Preserve level controller output when no other effects are active
This CL ensures that the output of the level controller is kept
when no other submodules in APM are active
BUG=webrtc:7697,
Review-Url: https://codereview.webrtc.org/2902723002
Cr-Commit-Position: refs/heads/master@{#18230}
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
index 0240012..0786ead 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -240,6 +240,11 @@
echo_canceller3_enabled_;
}
+bool AudioProcessingImpl::ApmSubmoduleStates::CaptureFullBandProcessingActive()
+ const {
+ return level_controller_enabled_;
+}
+
bool AudioProcessingImpl::ApmSubmoduleStates::RenderMultiBandSubModulesActive()
const {
return RenderMultiBandProcessingActive() || echo_canceller_enabled_ ||
@@ -1133,7 +1138,8 @@
capture_.capture_audio->DeinterleaveFrom(frame);
RETURN_ON_ERR(ProcessCaptureStreamLocked());
capture_.capture_audio->InterleaveTo(
- frame, submodule_states_.CaptureMultiBandProcessingActive());
+ frame, submodule_states_.CaptureMultiBandProcessingActive() ||
+ submodule_states_.CaptureFullBandProcessingActive());
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
if (debug_dump_.debug_file->is_open()) {