Chromium Code Reviews| 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 f9659b82c4d597dcd1e58f5e7b21b95278cad951..06b0cc7023e1b86a336298a4bb57592ef96b657c 100644 |
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc |
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc |
| @@ -259,7 +259,7 @@ bool AudioProcessingImpl::ApmSubmoduleStates::CaptureMultiBandProcessingActive() |
| bool AudioProcessingImpl::ApmSubmoduleStates::CaptureFullBandProcessingActive() |
| const { |
| - return level_controller_enabled_; |
| + return level_controller_enabled_ && gain_controller2_enabled_; |
|
aleloi
2017/08/15 14:34:03
I've forgotten how the APM monster works again. Wh
|
| } |
| bool AudioProcessingImpl::ApmSubmoduleStates::RenderMultiBandSubModulesActive() |
| @@ -711,24 +711,17 @@ 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)) { |
| 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(); |
| + LOG(LS_INFO) << "Gain Controller 2 activated: " |
| + << config_.gain_controller2.enabled; |
| } |
| void AudioProcessingImpl::SetExtraOptions(const webrtc::Config& config) { |
| @@ -1366,7 +1359,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); |
| } |
| @@ -1827,7 +1820,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(), |
| @@ -1889,9 +1882,12 @@ void AudioProcessingImpl::InitializeEchoCanceller3() { |
| } |
| void AudioProcessingImpl::InitializeGainController2() { |
| - if (capture_nonlocked_.gain_controller2_enabled) { |
| + if (config_.gain_controller2.enabled) { |
| + // TODO(alessiob): If GainController2 was already enabled and the fixed gain |
| + // to apply hasn't changed do not re-initialize. |
| private_submodules_->gain_controller2.reset( |
| - new GainController2(proc_sample_rate_hz())); |
| + new GainController2(config_.gain_controller2.fixed_gain_db)); |
| + private_submodules_->gain_controller2->Initialize(proc_sample_rate_hz()); |
|
aleloi
2017/08/15 14:34:03
proc_sample_rate_hz() is the right rate, right? So
AleBzk
2017/09/14 09:21:56
Thanks for your concern. Yes, I double-checked, it
|
| } else { |
| private_submodules_->gain_controller2.reset(); |
| } |
| @@ -1995,6 +1991,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; |