| 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 dabc4b8a49a4e069e666c56dabb6a900e4e538ae..222f749fb7b876fc55e53588a6d0914a192f90f1 100644
|
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc
|
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
|
| @@ -154,15 +154,15 @@
|
| };
|
|
|
| AudioProcessing* AudioProcessing::Create() {
|
| - webrtc::Config config;
|
| + Config config;
|
| return Create(config, nullptr);
|
| }
|
|
|
| -AudioProcessing* AudioProcessing::Create(const webrtc::Config& config) {
|
| +AudioProcessing* AudioProcessing::Create(const Config& config) {
|
| return Create(config, nullptr);
|
| }
|
|
|
| -AudioProcessing* AudioProcessing::Create(const webrtc::Config& config,
|
| +AudioProcessing* AudioProcessing::Create(const Config& config,
|
| NonlinearBeamformer* beamformer) {
|
| AudioProcessingImpl* apm = new AudioProcessingImpl(config, beamformer);
|
| if (apm->Initialize() != kNoError) {
|
| @@ -173,10 +173,10 @@
|
| return apm;
|
| }
|
|
|
| -AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config)
|
| +AudioProcessingImpl::AudioProcessingImpl(const Config& config)
|
| : AudioProcessingImpl(config, nullptr) {}
|
|
|
| -AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config,
|
| +AudioProcessingImpl::AudioProcessingImpl(const Config& config,
|
| NonlinearBeamformer* beamformer)
|
| : public_submodules_(new ApmPublicSubmodules()),
|
| private_submodules_(new ApmPrivateSubmodules(beamformer)),
|
| @@ -194,7 +194,8 @@
|
| config.Get<Beamforming>().array_geometry,
|
| config.Get<Beamforming>().target_direction),
|
| capture_nonlocked_(config.Get<Beamforming>().enabled,
|
| - config.Get<Intelligibility>().enabled) {
|
| + config.Get<Intelligibility>().enabled,
|
| + config.Get<LevelControl>().enabled) {
|
| {
|
| rtc::CritScope cs_render(&crit_render_);
|
| rtc::CritScope cs_capture(&crit_capture_);
|
| @@ -431,34 +432,7 @@
|
| return InitializeLocked();
|
| }
|
|
|
| -void AudioProcessingImpl::ApplyConfig(const AudioProcessing::Config& config) {
|
| - AudioProcessing::Config config_to_use = config;
|
| -
|
| - bool config_ok = LevelController::Validate(config_to_use.level_controller);
|
| - if (!config_ok) {
|
| - LOG(LS_ERROR) << "AudioProcessing module config error" << std::endl
|
| - << "level_controller: "
|
| - << LevelController::ToString(config_to_use.level_controller)
|
| - << std::endl
|
| - << "Reverting to default parameter set";
|
| - config_to_use.level_controller = AudioProcessing::Config::LevelController();
|
| - }
|
| -
|
| - // Run in a single-threaded manner when applying the settings.
|
| - rtc::CritScope cs_render(&crit_render_);
|
| - rtc::CritScope cs_capture(&crit_capture_);
|
| -
|
| - if (config.level_controller.enabled !=
|
| - capture_nonlocked_.level_controller_enabled) {
|
| - InitializeLevelController();
|
| - LOG(LS_INFO) << "Level controller activated: "
|
| - << capture_nonlocked_.level_controller_enabled;
|
| - capture_nonlocked_.level_controller_enabled =
|
| - config.level_controller.enabled;
|
| - }
|
| -}
|
| -
|
| -void AudioProcessingImpl::SetExtraOptions(const webrtc::Config& config) {
|
| +void AudioProcessingImpl::SetExtraOptions(const Config& config) {
|
| // Run in a single-threaded manner when setting the extra options.
|
| rtc::CritScope cs_render(&crit_render_);
|
| rtc::CritScope cs_capture(&crit_capture_);
|
| @@ -470,6 +444,16 @@
|
| capture_.transient_suppressor_enabled =
|
| config.Get<ExperimentalNs>().enabled;
|
| InitializeTransient();
|
| + }
|
| +
|
| + if (capture_nonlocked_.level_controller_enabled !=
|
| + config.Get<LevelControl>().enabled) {
|
| + capture_nonlocked_.level_controller_enabled =
|
| + config.Get<LevelControl>().enabled;
|
| + LOG(LS_INFO) << "Level controller activated: "
|
| + << config.Get<LevelControl>().enabled;
|
| +
|
| + InitializeLevelController();
|
| }
|
|
|
| #if WEBRTC_INTELLIGIBILITY_ENHANCER
|
|
|