| 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 10ce88a9bff819841c5bd65738b5e9e4c4055fe8..dbc04b7cf34f5fedf29b613139ba93a5b8c281fe 100644
|
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc
|
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
|
| @@ -85,7 +85,7 @@
|
| echo_control_mobile(nullptr),
|
| gain_control(nullptr) {}
|
| // Accessed externally of APM without any lock acquired.
|
| - std::unique_ptr<EchoCancellationImpl> echo_cancellation;
|
| + EchoCancellationImpl* echo_cancellation;
|
| EchoControlMobileImpl* echo_control_mobile;
|
| GainControlImpl* gain_control;
|
| std::unique_ptr<HighPassFilterImpl> high_pass_filter;
|
| @@ -168,8 +168,8 @@
|
| rtc::CritScope cs_render(&crit_render_);
|
| rtc::CritScope cs_capture(&crit_capture_);
|
|
|
| - public_submodules_->echo_cancellation.reset(
|
| - new EchoCancellationImpl(this, &crit_render_, &crit_capture_));
|
| + public_submodules_->echo_cancellation =
|
| + new EchoCancellationImpl(this, &crit_render_, &crit_capture_);
|
| public_submodules_->echo_control_mobile =
|
| new EchoControlMobileImpl(this, &crit_render_, &crit_capture_);
|
| public_submodules_->gain_control =
|
| @@ -185,6 +185,9 @@
|
| public_submodules_->gain_control_for_experimental_agc.reset(
|
| new GainControlForExperimentalAgc(public_submodules_->gain_control,
|
| &crit_capture_));
|
| +
|
| + private_submodules_->component_list.push_back(
|
| + public_submodules_->echo_cancellation);
|
| private_submodules_->component_list.push_back(
|
| public_submodules_->echo_control_mobile);
|
| private_submodules_->component_list.push_back(
|
| @@ -319,7 +322,6 @@
|
| }
|
| }
|
|
|
| - InitializeEchoCanceller();
|
| InitializeExperimentalAgc();
|
| InitializeTransient();
|
| InitializeBeamformer();
|
| @@ -420,8 +422,6 @@
|
| for (auto item : private_submodules_->component_list) {
|
| item->SetExtraOptions(config);
|
| }
|
| -
|
| - public_submodules_->echo_cancellation->SetExtraOptions(config);
|
|
|
| if (capture_.transient_suppressor_enabled !=
|
| config.Get<ExperimentalNs>().enabled) {
|
| @@ -1087,7 +1087,7 @@
|
| EchoCancellation* AudioProcessingImpl::echo_cancellation() const {
|
| // Adding a lock here has no effect as it allows any access to the submodule
|
| // from the returned pointer.
|
| - return public_submodules_->echo_cancellation.get();
|
| + return public_submodules_->echo_cancellation;
|
| }
|
|
|
| EchoControlMobile* AudioProcessingImpl::echo_control_mobile() const {
|
| @@ -1134,8 +1134,7 @@
|
| // modify the data.
|
| if (capture_nonlocked_.beamformer_enabled ||
|
| public_submodules_->high_pass_filter->is_enabled() ||
|
| - public_submodules_->noise_suppression->is_enabled() ||
|
| - public_submodules_->echo_cancellation->is_enabled()) {
|
| + public_submodules_->noise_suppression->is_enabled()) {
|
| return true;
|
| }
|
|
|
| @@ -1248,10 +1247,6 @@
|
| void AudioProcessingImpl::InitializeNoiseSuppression() {
|
| public_submodules_->noise_suppression->Initialize(num_proc_channels(),
|
| proc_sample_rate_hz());
|
| -}
|
| -
|
| -void AudioProcessingImpl::InitializeEchoCanceller() {
|
| - public_submodules_->echo_cancellation->Initialize();
|
| }
|
|
|
| void AudioProcessingImpl::InitializeLevelEstimator() {
|
|
|