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 9b80318e909b980fbcadad3dbe46b66a0e11ad79..65fc63ad0e979644893369f9f2e933ccf6ac6f5e 100644 |
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc |
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc |
@@ -250,7 +250,7 @@ bool AudioProcessingImpl::ApmSubmoduleStates::CaptureMultiBandProcessingActive() |
bool AudioProcessingImpl::ApmSubmoduleStates::CaptureFullBandProcessingActive() |
const { |
- return level_controller_enabled_; |
+ return level_controller_enabled_ && gain_controller2_enabled_; |
} |
bool AudioProcessingImpl::ApmSubmoduleStates::RenderMultiBandSubModulesActive() |
@@ -371,6 +371,10 @@ AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config, |
// TODO(peah): Move this creation to happen only when the level controller |
// is enabled. |
private_submodules_->level_controller.reset(new LevelController()); |
+ |
+ // TODO(alessiob): Move this creation to happen only when the gain |
+ // controller is enabled. |
AleBzk
2017/09/14 09:21:56
@Per: I replicated the TODO from LC, but the code
peah-webrtc
2017/09/15 07:44:25
Acknowledged.
AleBzk
2017/09/29 09:39:06
Done.
|
+ private_submodules_->gain_controller2.reset(new GainController2()); |
} |
SetExtraOptions(config); |
@@ -676,24 +680,18 @@ void AudioProcessingImpl::ApplyConfig(const AudioProcessing::Config& config) { |
<< capture_nonlocked_.echo_canceller3_enabled; |
} |
- config_ok = GainController2::Validate(config_.gain_controller2); |
- if (!config_ok) { |
+ if (!GainController2::Validate(config_.gain_controller2)) { |
peah-webrtc
2017/09/15 07:44:25
Even though this works, I think it makes sense to
AleBzk
2017/09/29 09:39:06
Done.
|
LOG(LS_ERROR) << "AudioProcessing module config error" << std::endl |
- << "gain_controller2: " |
+ << "Gain Controller 2: " |
<< GainController2::ToString(config_.gain_controller2) |
<< std::endl |
<< "Reverting to default parameter set"; |
config_.gain_controller2 = AudioProcessing::Config::GainController2(); |
} |
- |
- if (config.gain_controller2.enabled != |
- capture_nonlocked_.gain_controller2_enabled) { |
- capture_nonlocked_.gain_controller2_enabled = |
- config_.gain_controller2.enabled; |
- InitializeGainController2(); |
- LOG(LS_INFO) << "Gain controller 2 activated: " |
- << capture_nonlocked_.gain_controller2_enabled; |
- } |
+ InitializeGainController2(); |
AleBzk
2017/09/14 09:21:56
@Per: every time that we call AudioProcessingImpl:
peah-webrtc
2017/09/15 07:44:25
I think so.
|
+ private_submodules_->gain_controller2->ApplyConfig(config_.gain_controller2); |
+ LOG(LS_INFO) << "Gain Controller 2 activated: " |
+ << config_.gain_controller2.enabled; |
} |
void AudioProcessingImpl::SetExtraOptions(const webrtc::Config& config) { |
@@ -1270,7 +1268,7 @@ int AudioProcessingImpl::ProcessCaptureStreamLocked() { |
capture_.key_pressed); |
} |
- if (capture_nonlocked_.gain_controller2_enabled) { |
+ if (config_.gain_controller2.enabled) { |
private_submodules_->gain_controller2->Process(capture_buffer); |
} |
@@ -1618,7 +1616,7 @@ bool AudioProcessingImpl::UpdateActiveSubmoduleStates() { |
capture_nonlocked_.intelligibility_enabled, |
capture_nonlocked_.beamformer_enabled, |
public_submodules_->gain_control->is_enabled(), |
- capture_nonlocked_.gain_controller2_enabled, |
+ config_.gain_controller2.enabled, |
capture_nonlocked_.level_controller_enabled, |
capture_nonlocked_.echo_canceller3_enabled, |
public_submodules_->voice_detection->is_enabled(), |
@@ -1680,11 +1678,8 @@ void AudioProcessingImpl::InitializeEchoCanceller3() { |
} |
void AudioProcessingImpl::InitializeGainController2() { |
- if (capture_nonlocked_.gain_controller2_enabled) { |
- private_submodules_->gain_controller2.reset( |
- new GainController2(proc_sample_rate_hz())); |
- } else { |
- private_submodules_->gain_controller2.reset(); |
+ if (config_.gain_controller2.enabled) { |
+ private_submodules_->gain_controller2->Initialize(proc_sample_rate_hz()); |
} |
} |
@@ -1700,7 +1695,7 @@ void AudioProcessingImpl::MaybeUpdateHistograms() { |
static const int kMinDiffDelayMs = 60; |
if (echo_cancellation()->is_enabled()) { |
- // Activate delay_jumps_ counters if we know echo_cancellation is runnning. |
+ // Activate delay_jumps_ counters if we know echo_cancellation is running. |
// If a stream has echo we know that the echo_cancellation is in process. |
if (capture_.stream_delay_jumps == -1 && |
echo_cancellation()->stream_has_echo()) { |
@@ -1786,6 +1781,9 @@ void AudioProcessingImpl::WriteAecDumpConfigMessage(bool forced) { |
if (capture_nonlocked_.echo_canceller3_enabled) { |
experiments_description += "EchoCanceller3;"; |
} |
+ if (config_.gain_controller2.enabled) { |
+ experiments_description += "GainController2;"; |
+ } |
InternalAPMConfig apm_config; |