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:
parent
1d68089f4b
commit
23ac8b49f4
@ -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()) {
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user