diff --git a/webrtc/modules/audio_processing/test/audio_processing_simulator.cc b/webrtc/modules/audio_processing/test/audio_processing_simulator.cc index 27b3803a19..d2c274f460 100644 --- a/webrtc/modules/audio_processing/test/audio_processing_simulator.cc +++ b/webrtc/modules/audio_processing/test/audio_processing_simulator.cc @@ -285,6 +285,8 @@ void AudioProcessingSimulator::CreateAudioProcessor() { !settings_.use_extended_filter || *settings_.use_extended_filter)); config.Set(new DelayAgnostic(!settings_.use_delay_agnostic || *settings_.use_delay_agnostic)); + config.Set(new ExperimentalAgc( + !settings_.use_experimental_agc || *settings_.use_experimental_agc)); if (settings_.use_ed) { apm_config.residual_echo_detector.enabled = *settings_.use_ed; } @@ -327,7 +329,11 @@ void AudioProcessingSimulator::CreateAudioProcessor() { ap_->gain_control()->set_target_level_dbfs( *settings_.agc_target_level)); } - + if (settings_.agc_compression_gain) { + RTC_CHECK_EQ(AudioProcessing::kNoError, + ap_->gain_control()->set_compression_gain_db( + *settings_.agc_compression_gain)); + } if (settings_.agc_mode) { RTC_CHECK_EQ( AudioProcessing::kNoError, diff --git a/webrtc/modules/audio_processing/test/audio_processing_simulator.h b/webrtc/modules/audio_processing/test/audio_processing_simulator.h index 06735c47b0..f597fa101a 100644 --- a/webrtc/modules/audio_processing/test/audio_processing_simulator.h +++ b/webrtc/modules/audio_processing/test/audio_processing_simulator.h @@ -64,6 +64,7 @@ struct SimulationSettings { rtc::Optional use_drift_compensation; rtc::Optional use_aec3; rtc::Optional use_lc; + rtc::Optional use_experimental_agc; rtc::Optional aecm_routing_mode; rtc::Optional use_aecm_comfort_noise; rtc::Optional agc_mode; diff --git a/webrtc/modules/audio_processing/test/audioproc_float.cc b/webrtc/modules/audio_processing/test/audioproc_float.cc index c4e7c3dced..9f1abc430d 100644 --- a/webrtc/modules/audio_processing/test/audioproc_float.cc +++ b/webrtc/modules/audio_processing/test/audioproc_float.cc @@ -121,6 +121,9 @@ DEFINE_int32(aec3, DEFINE_int32(lc, kParameterNotSpecifiedValue, "Activate (1) or deactivate(0) the level control"); +DEFINE_int32(experimental_agc, + kParameterNotSpecifiedValue, + "Activate (1) or deactivate(0) the experimental AGC"); DEFINE_int32( refined_adaptive_filter, kParameterNotSpecifiedValue, @@ -245,6 +248,7 @@ SimulationSettings CreateSettings() { SetSettingIfFlagSet(FLAGS_aec3, &settings.use_aec3); SetSettingIfFlagSet(FLAGS_lc, &settings.use_lc); + SetSettingIfFlagSet(FLAGS_experimental_agc, &settings.use_experimental_agc); SetSettingIfSpecified(FLAGS_aecm_routing_mode, &settings.aecm_routing_mode); SetSettingIfFlagSet(FLAGS_aecm_comfort_noise, &settings.use_aecm_comfort_noise);