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_; |
} |
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 |
peah-webrtc
2017/08/18 04:51:06
I think you probably want to update the sample rat
aleloi
2017/08/18 08:28:31
Isn't it already updated at line 1890?
|
+ // 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()); |
} 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; |