Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(390)

Side by Side Diff: webrtc/modules/audio_processing/audio_processing_impl.cc

Issue 1770823002: Removed the AudioProcessing dependency in EchoCancellerImpl (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@CleanUpAecImpl_CL
Patch Set: Added missing removal of now unused state variables Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 #endif 162 #endif
163 config.Get<Beamforming>().array_geometry, 163 config.Get<Beamforming>().array_geometry,
164 config.Get<Beamforming>().target_direction), 164 config.Get<Beamforming>().target_direction),
165 capture_nonlocked_(config.Get<Beamforming>().enabled) 165 capture_nonlocked_(config.Get<Beamforming>().enabled)
166 { 166 {
167 { 167 {
168 rtc::CritScope cs_render(&crit_render_); 168 rtc::CritScope cs_render(&crit_render_);
169 rtc::CritScope cs_capture(&crit_capture_); 169 rtc::CritScope cs_capture(&crit_capture_);
170 170
171 public_submodules_->echo_cancellation.reset( 171 public_submodules_->echo_cancellation.reset(
172 new EchoCancellationImpl(this, &crit_render_, &crit_capture_)); 172 new EchoCancellationImpl(&crit_render_, &crit_capture_));
173 public_submodules_->echo_control_mobile = 173 public_submodules_->echo_control_mobile =
174 new EchoControlMobileImpl(this, &crit_render_, &crit_capture_); 174 new EchoControlMobileImpl(this, &crit_render_, &crit_capture_);
175 public_submodules_->gain_control = 175 public_submodules_->gain_control =
176 new GainControlImpl(this, &crit_capture_, &crit_capture_); 176 new GainControlImpl(this, &crit_capture_, &crit_capture_);
177 public_submodules_->high_pass_filter.reset( 177 public_submodules_->high_pass_filter.reset(
178 new HighPassFilterImpl(&crit_capture_)); 178 new HighPassFilterImpl(&crit_capture_));
179 public_submodules_->level_estimator.reset( 179 public_submodules_->level_estimator.reset(
180 new LevelEstimatorImpl(&crit_capture_)); 180 new LevelEstimatorImpl(&crit_capture_));
181 public_submodules_->noise_suppression.reset( 181 public_submodules_->noise_suppression.reset(
182 new NoiseSuppressionImpl(&crit_capture_)); 182 new NoiseSuppressionImpl(&crit_capture_));
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 708
709 if (capture_nonlocked_.beamformer_enabled) { 709 if (capture_nonlocked_.beamformer_enabled) {
710 private_submodules_->beamformer->ProcessChunk(*ca->split_data_f(), 710 private_submodules_->beamformer->ProcessChunk(*ca->split_data_f(),
711 ca->split_data_f()); 711 ca->split_data_f());
712 ca->set_num_channels(1); 712 ca->set_num_channels(1);
713 } 713 }
714 714
715 public_submodules_->high_pass_filter->ProcessCaptureAudio(ca); 715 public_submodules_->high_pass_filter->ProcessCaptureAudio(ca);
716 RETURN_ON_ERR(public_submodules_->gain_control->AnalyzeCaptureAudio(ca)); 716 RETURN_ON_ERR(public_submodules_->gain_control->AnalyzeCaptureAudio(ca));
717 public_submodules_->noise_suppression->AnalyzeCaptureAudio(ca); 717 public_submodules_->noise_suppression->AnalyzeCaptureAudio(ca);
718 RETURN_ON_ERR(public_submodules_->echo_cancellation->ProcessCaptureAudio(ca)); 718
719 // Ensure that not both the AEC and AECM are active at the same time.
720 // TODO(peah): Simplify once the public API Enable functions for these
721 // are moved to APM.
722 if (public_submodules_->echo_cancellation->is_enabled() &&
723 public_submodules_->echo_control_mobile->is_enabled()) {
724 return AudioProcessing::kBadParameterError;
725 }
726
727 // Ensure that the stream delay was set before the call to the
728 // AEC ProcessCaptureAudio function.
729 if (!was_stream_delay_set()) {
730 return AudioProcessing::kBadParameterError;
731 }
732
733 RETURN_ON_ERR(public_submodules_->echo_cancellation->ProcessCaptureAudio(
734 ca, stream_delay_ms()));
719 735
720 if (public_submodules_->echo_control_mobile->is_enabled() && 736 if (public_submodules_->echo_control_mobile->is_enabled() &&
721 public_submodules_->noise_suppression->is_enabled()) { 737 public_submodules_->noise_suppression->is_enabled()) {
722 ca->CopyLowPassToReference(); 738 ca->CopyLowPassToReference();
723 } 739 }
724 public_submodules_->noise_suppression->ProcessCaptureAudio(ca); 740 public_submodules_->noise_suppression->ProcessCaptureAudio(ca);
725 if (constants_.intelligibility_enabled) { 741 if (constants_.intelligibility_enabled) {
726 RTC_DCHECK(public_submodules_->noise_suppression->is_enabled()); 742 RTC_DCHECK(public_submodules_->noise_suppression->is_enabled());
727 public_submodules_->intelligibility_enhancer->SetCaptureNoiseEstimate( 743 public_submodules_->intelligibility_enhancer->SetCaptureNoiseEstimate(
728 public_submodules_->noise_suppression->NoiseEstimate()); 744 public_submodules_->noise_suppression->NoiseEstimate());
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
1244 public_submodules_->high_pass_filter->Initialize(num_proc_channels(), 1260 public_submodules_->high_pass_filter->Initialize(num_proc_channels(),
1245 proc_sample_rate_hz()); 1261 proc_sample_rate_hz());
1246 } 1262 }
1247 1263
1248 void AudioProcessingImpl::InitializeNoiseSuppression() { 1264 void AudioProcessingImpl::InitializeNoiseSuppression() {
1249 public_submodules_->noise_suppression->Initialize(num_proc_channels(), 1265 public_submodules_->noise_suppression->Initialize(num_proc_channels(),
1250 proc_sample_rate_hz()); 1266 proc_sample_rate_hz());
1251 } 1267 }
1252 1268
1253 void AudioProcessingImpl::InitializeEchoCanceller() { 1269 void AudioProcessingImpl::InitializeEchoCanceller() {
1254 public_submodules_->echo_cancellation->Initialize(); 1270 public_submodules_->echo_cancellation->Initialize(
1271 proc_sample_rate_hz(), num_reverse_channels(), num_output_channels(),
1272 num_proc_channels());
1255 } 1273 }
1256 1274
1257 void AudioProcessingImpl::InitializeLevelEstimator() { 1275 void AudioProcessingImpl::InitializeLevelEstimator() {
1258 public_submodules_->level_estimator->Initialize(); 1276 public_submodules_->level_estimator->Initialize();
1259 } 1277 }
1260 1278
1261 void AudioProcessingImpl::InitializeVoiceDetection() { 1279 void AudioProcessingImpl::InitializeVoiceDetection() {
1262 public_submodules_->voice_detection->Initialize(proc_split_sample_rate_hz()); 1280 public_submodules_->voice_detection->Initialize(proc_split_sample_rate_hz());
1263 } 1281 }
1264 1282
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
1457 debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config); 1475 debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config);
1458 1476
1459 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), 1477 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
1460 &debug_dump_.num_bytes_left_for_log_, 1478 &debug_dump_.num_bytes_left_for_log_,
1461 &crit_debug_, &debug_dump_.capture)); 1479 &crit_debug_, &debug_dump_.capture));
1462 return kNoError; 1480 return kNoError;
1463 } 1481 }
1464 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP 1482 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP
1465 1483
1466 } // namespace webrtc 1484 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698