Chromium Code Reviews| 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 48f23b18563754d2db7159042cf5eee2fa525c96..0f34d44715184177c91f3138304403b7dd5d2d87 100644 |
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc |
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc |
| @@ -89,7 +89,7 @@ struct AudioProcessingImpl::ApmPublicSubmodules { |
| EchoCancellationImpl* echo_cancellation; |
| EchoControlMobileImpl* echo_control_mobile; |
| GainControlImpl* gain_control; |
| - HighPassFilterImpl* high_pass_filter; |
| + rtc::scoped_ptr<HighPassFilterImpl> high_pass_filter; |
| LevelEstimatorImpl* level_estimator; |
| NoiseSuppressionImpl* noise_suppression; |
| VoiceDetectionImpl* voice_detection; |
| @@ -243,8 +243,8 @@ AudioProcessingImpl::AudioProcessingImpl(const Config& config, |
| new EchoControlMobileImpl(this, &crit_render_, &crit_capture_); |
| public_submodules_->gain_control = |
| new GainControlImpl(this, &crit_capture_, &crit_capture_); |
| - public_submodules_->high_pass_filter = |
| - new HighPassFilterImpl(this, &crit_capture_); |
| + public_submodules_->high_pass_filter.reset( |
| + new HighPassFilterImpl(&crit_capture_)); |
| public_submodules_->level_estimator = |
| new LevelEstimatorImpl(this, &crit_capture_); |
| public_submodules_->noise_suppression = |
| @@ -261,8 +261,6 @@ AudioProcessingImpl::AudioProcessingImpl(const Config& config, |
| private_submodules_->component_list.push_back( |
| public_submodules_->gain_control); |
| private_submodules_->component_list.push_back( |
| - public_submodules_->high_pass_filter); |
| - private_submodules_->component_list.push_back( |
| public_submodules_->level_estimator); |
| private_submodules_->component_list.push_back( |
| public_submodules_->noise_suppression); |
| @@ -406,6 +404,8 @@ int AudioProcessingImpl::InitializeLocked() { |
| InitializeIntelligibility(); |
| + InitializeHighPassFilter(); |
| + |
| #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| if (debug_dump_.debug_file->Open()) { |
| int err = WriteInitMessage(); |
| @@ -767,7 +767,7 @@ int AudioProcessingImpl::ProcessStreamLocked() { |
| ca->set_num_channels(1); |
| } |
| - RETURN_ON_ERR(public_submodules_->high_pass_filter->ProcessCaptureAudio(ca)); |
| + public_submodules_->high_pass_filter->ProcessCaptureAudio(ca); |
| RETURN_ON_ERR(public_submodules_->gain_control->AnalyzeCaptureAudio(ca)); |
| RETURN_ON_ERR(public_submodules_->noise_suppression->AnalyzeCaptureAudio(ca)); |
| RETURN_ON_ERR(public_submodules_->echo_cancellation->ProcessCaptureAudio(ca)); |
| @@ -1147,7 +1147,7 @@ GainControl* AudioProcessingImpl::gain_control() const { |
| HighPassFilter* AudioProcessingImpl::high_pass_filter() const { |
| // Adding a lock here has no effect as it allows any access to the submodule |
| // from the returned pointer. |
| - return public_submodules_->high_pass_filter; |
| + return public_submodules_->high_pass_filter.get(); |
| } |
| LevelEstimator* AudioProcessingImpl::level_estimator() const { |
| @@ -1293,6 +1293,12 @@ void AudioProcessingImpl::InitializeIntelligibility() { |
| } |
| } |
| +void AudioProcessingImpl::InitializeHighPassFilter() { |
| + int channels = num_output_channels(); |
|
peah-webrtc
2015/12/08 14:52:27
Why are the number of output channels and sample r
the sun
2015/12/08 15:08:05
Done.
|
| + int sample_rate_hz = proc_sample_rate_hz(); |
| + public_submodules_->high_pass_filter->Initialize(channels, sample_rate_hz); |
| +} |
| + |
| void AudioProcessingImpl::MaybeUpdateHistograms() { |
| static const int kMinDiffDelayMs = 60; |