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}
This commit is contained in:
peah 2017-05-23 05:33:56 -07:00 committed by Commit bot
parent 1d68089f4b
commit 23ac8b49f4
2 changed files with 8 additions and 1 deletions

View File

@ -240,6 +240,11 @@ bool AudioProcessingImpl::ApmSubmoduleStates::CaptureMultiBandProcessingActive()
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 @@ int AudioProcessingImpl::ProcessStream(AudioFrame* frame) {
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()) {

View File

@ -173,6 +173,7 @@ class AudioProcessingImpl : public AudioProcessing {
bool transient_suppressor_enabled);
bool CaptureMultiBandSubModulesActive() const;
bool CaptureMultiBandProcessingActive() const;
bool CaptureFullBandProcessingActive() const;
bool RenderMultiBandSubModulesActive() const;
bool RenderMultiBandProcessingActive() const;