| 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 222f749fb7b876fc55e53588a6d0914a192f90f1..dabc4b8a49a4e069e666c56dabb6a900e4e538ae 100644
|
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc
|
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
|
| @@ -154,15 +154,15 @@ struct AudioProcessingImpl::ApmPrivateSubmodules {
|
| };
|
|
|
| AudioProcessing* AudioProcessing::Create() {
|
| - Config config;
|
| + webrtc::Config config;
|
| return Create(config, nullptr);
|
| }
|
|
|
| -AudioProcessing* AudioProcessing::Create(const Config& config) {
|
| +AudioProcessing* AudioProcessing::Create(const webrtc::Config& config) {
|
| return Create(config, nullptr);
|
| }
|
|
|
| -AudioProcessing* AudioProcessing::Create(const Config& config,
|
| +AudioProcessing* AudioProcessing::Create(const webrtc::Config& config,
|
| NonlinearBeamformer* beamformer) {
|
| AudioProcessingImpl* apm = new AudioProcessingImpl(config, beamformer);
|
| if (apm->Initialize() != kNoError) {
|
| @@ -173,10 +173,10 @@ AudioProcessing* AudioProcessing::Create(const Config& config,
|
| return apm;
|
| }
|
|
|
| -AudioProcessingImpl::AudioProcessingImpl(const Config& config)
|
| +AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config)
|
| : AudioProcessingImpl(config, nullptr) {}
|
|
|
| -AudioProcessingImpl::AudioProcessingImpl(const Config& config,
|
| +AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config,
|
| NonlinearBeamformer* beamformer)
|
| : public_submodules_(new ApmPublicSubmodules()),
|
| private_submodules_(new ApmPrivateSubmodules(beamformer)),
|
| @@ -194,8 +194,7 @@ AudioProcessingImpl::AudioProcessingImpl(const Config& config,
|
| config.Get<Beamforming>().array_geometry,
|
| config.Get<Beamforming>().target_direction),
|
| capture_nonlocked_(config.Get<Beamforming>().enabled,
|
| - config.Get<Intelligibility>().enabled,
|
| - config.Get<LevelControl>().enabled) {
|
| + config.Get<Intelligibility>().enabled) {
|
| {
|
| rtc::CritScope cs_render(&crit_render_);
|
| rtc::CritScope cs_capture(&crit_capture_);
|
| @@ -432,7 +431,34 @@ int AudioProcessingImpl::InitializeLocked(const ProcessingConfig& config) {
|
| return InitializeLocked();
|
| }
|
|
|
| -void AudioProcessingImpl::SetExtraOptions(const Config& config) {
|
| +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) {
|
| // Run in a single-threaded manner when setting the extra options.
|
| rtc::CritScope cs_render(&crit_render_);
|
| rtc::CritScope cs_capture(&crit_capture_);
|
| @@ -446,16 +472,6 @@ void AudioProcessingImpl::SetExtraOptions(const Config& config) {
|
| 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
|
| if(capture_nonlocked_.intelligibility_enabled !=
|
| config.Get<Intelligibility>().enabled) {
|
|
|