OLD | NEW |
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 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 return ProcessReverseStreamLocked(); | 914 return ProcessReverseStreamLocked(); |
915 } | 915 } |
916 | 916 |
917 int AudioProcessingImpl::ProcessReverseStreamLocked() { | 917 int AudioProcessingImpl::ProcessReverseStreamLocked() { |
918 AudioBuffer* ra = render_.render_audio.get(); // For brevity. | 918 AudioBuffer* ra = render_.render_audio.get(); // For brevity. |
919 if (formats_.rev_proc_format.sample_rate_hz() == kSampleRate32kHz) { | 919 if (formats_.rev_proc_format.sample_rate_hz() == kSampleRate32kHz) { |
920 ra->SplitIntoFrequencyBands(); | 920 ra->SplitIntoFrequencyBands(); |
921 } | 921 } |
922 | 922 |
923 if (constants_.intelligibility_enabled) { | 923 if (constants_.intelligibility_enabled) { |
924 // Currently run in single-threaded mode when the intelligibility | |
925 // enhancer is activated. | |
926 // TODO(peah): Fix to be properly multi-threaded. | |
927 rtc::CritScope cs(&crit_capture_); | |
928 public_submodules_->intelligibility_enhancer->ProcessRenderAudio( | 924 public_submodules_->intelligibility_enhancer->ProcessRenderAudio( |
929 ra->split_channels_f(kBand0To8kHz), capture_nonlocked_.split_rate, | 925 ra->split_channels_f(kBand0To8kHz), capture_nonlocked_.split_rate, |
930 ra->num_channels()); | 926 ra->num_channels()); |
931 } | 927 } |
932 | 928 |
933 RETURN_ON_ERR(public_submodules_->echo_cancellation->ProcessRenderAudio(ra)); | 929 RETURN_ON_ERR(public_submodules_->echo_cancellation->ProcessRenderAudio(ra)); |
934 RETURN_ON_ERR( | 930 RETURN_ON_ERR( |
935 public_submodules_->echo_control_mobile->ProcessRenderAudio(ra)); | 931 public_submodules_->echo_control_mobile->ProcessRenderAudio(ra)); |
936 if (!constants_.use_experimental_agc) { | 932 if (!constants_.use_experimental_agc) { |
937 RETURN_ON_ERR(public_submodules_->gain_control->ProcessRenderAudio(ra)); | 933 RETURN_ON_ERR(public_submodules_->gain_control->ProcessRenderAudio(ra)); |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1229 } | 1225 } |
1230 private_submodules_->beamformer->Initialize(kChunkSizeMs, | 1226 private_submodules_->beamformer->Initialize(kChunkSizeMs, |
1231 capture_nonlocked_.split_rate); | 1227 capture_nonlocked_.split_rate); |
1232 } | 1228 } |
1233 } | 1229 } |
1234 | 1230 |
1235 void AudioProcessingImpl::InitializeIntelligibility() { | 1231 void AudioProcessingImpl::InitializeIntelligibility() { |
1236 if (constants_.intelligibility_enabled) { | 1232 if (constants_.intelligibility_enabled) { |
1237 public_submodules_->intelligibility_enhancer.reset( | 1233 public_submodules_->intelligibility_enhancer.reset( |
1238 new IntelligibilityEnhancer(capture_nonlocked_.split_rate, | 1234 new IntelligibilityEnhancer(capture_nonlocked_.split_rate, |
1239 render_.render_audio->num_channels())); | 1235 render_.render_audio->num_channels(), |
| 1236 NoiseSuppressionImpl::num_noise_bins())); |
1240 } | 1237 } |
1241 } | 1238 } |
1242 | 1239 |
1243 void AudioProcessingImpl::InitializeHighPassFilter() { | 1240 void AudioProcessingImpl::InitializeHighPassFilter() { |
1244 public_submodules_->high_pass_filter->Initialize(num_proc_channels(), | 1241 public_submodules_->high_pass_filter->Initialize(num_proc_channels(), |
1245 proc_sample_rate_hz()); | 1242 proc_sample_rate_hz()); |
1246 } | 1243 } |
1247 | 1244 |
1248 void AudioProcessingImpl::InitializeNoiseSuppression() { | 1245 void AudioProcessingImpl::InitializeNoiseSuppression() { |
1249 public_submodules_->noise_suppression->Initialize(num_proc_channels(), | 1246 public_submodules_->noise_suppression->Initialize(num_proc_channels(), |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1456 debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config); | 1453 debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config); |
1457 | 1454 |
1458 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 1455 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
1459 &debug_dump_.num_bytes_left_for_log_, | 1456 &debug_dump_.num_bytes_left_for_log_, |
1460 &crit_debug_, &debug_dump_.capture)); | 1457 &crit_debug_, &debug_dump_.capture)); |
1461 return kNoError; | 1458 return kNoError; |
1462 } | 1459 } |
1463 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP | 1460 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
1464 | 1461 |
1465 } // namespace webrtc | 1462 } // namespace webrtc |
OLD | NEW |