| 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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 // Updates the submodule state and returns true if it has changed. | 161 // Updates the submodule state and returns true if it has changed. |
| 162 bool Update(bool low_cut_filter_enabled, | 162 bool Update(bool low_cut_filter_enabled, |
| 163 bool echo_canceller_enabled, | 163 bool echo_canceller_enabled, |
| 164 bool mobile_echo_controller_enabled, | 164 bool mobile_echo_controller_enabled, |
| 165 bool residual_echo_detector_enabled, | 165 bool residual_echo_detector_enabled, |
| 166 bool noise_suppressor_enabled, | 166 bool noise_suppressor_enabled, |
| 167 bool intelligibility_enhancer_enabled, | 167 bool intelligibility_enhancer_enabled, |
| 168 bool beamformer_enabled, | 168 bool beamformer_enabled, |
| 169 bool adaptive_gain_controller_enabled, | 169 bool adaptive_gain_controller_enabled, |
| 170 bool level_controller_enabled, | 170 bool level_controller_enabled, |
| 171 bool echo_canceller3_enabled, |
| 171 bool voice_activity_detector_enabled, | 172 bool voice_activity_detector_enabled, |
| 172 bool level_estimator_enabled, | 173 bool level_estimator_enabled, |
| 173 bool transient_suppressor_enabled); | 174 bool transient_suppressor_enabled); |
| 174 bool CaptureMultiBandSubModulesActive() const; | 175 bool CaptureMultiBandSubModulesActive() const; |
| 175 bool CaptureMultiBandProcessingActive() const; | 176 bool CaptureMultiBandProcessingActive() const; |
| 176 bool RenderMultiBandSubModulesActive() const; | 177 bool RenderMultiBandSubModulesActive() const; |
| 177 bool RenderMultiBandProcessingActive() const; | 178 bool RenderMultiBandProcessingActive() const; |
| 178 | 179 |
| 179 private: | 180 private: |
| 180 bool low_cut_filter_enabled_ = false; | 181 bool low_cut_filter_enabled_ = false; |
| 181 bool echo_canceller_enabled_ = false; | 182 bool echo_canceller_enabled_ = false; |
| 182 bool mobile_echo_controller_enabled_ = false; | 183 bool mobile_echo_controller_enabled_ = false; |
| 183 bool residual_echo_detector_enabled_ = false; | 184 bool residual_echo_detector_enabled_ = false; |
| 184 bool noise_suppressor_enabled_ = false; | 185 bool noise_suppressor_enabled_ = false; |
| 185 bool intelligibility_enhancer_enabled_ = false; | 186 bool intelligibility_enhancer_enabled_ = false; |
| 186 bool beamformer_enabled_ = false; | 187 bool beamformer_enabled_ = false; |
| 187 bool adaptive_gain_controller_enabled_ = false; | 188 bool adaptive_gain_controller_enabled_ = false; |
| 188 bool level_controller_enabled_ = false; | 189 bool level_controller_enabled_ = false; |
| 190 bool echo_canceller3_enabled_ = false; |
| 189 bool level_estimator_enabled_ = false; | 191 bool level_estimator_enabled_ = false; |
| 190 bool voice_activity_detector_enabled_ = false; | 192 bool voice_activity_detector_enabled_ = false; |
| 191 bool transient_suppressor_enabled_ = false; | 193 bool transient_suppressor_enabled_ = false; |
| 192 bool first_update_ = true; | 194 bool first_update_ = true; |
| 193 }; | 195 }; |
| 194 | 196 |
| 195 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 197 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 196 // State for the debug dump. | 198 // State for the debug dump. |
| 197 struct ApmDebugDumpThreadState { | 199 struct ApmDebugDumpThreadState { |
| 198 ApmDebugDumpThreadState(); | 200 ApmDebugDumpThreadState(); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 void InitializeBeamformer() | 246 void InitializeBeamformer() |
| 245 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 247 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); |
| 246 void InitializeIntelligibility() | 248 void InitializeIntelligibility() |
| 247 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 249 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); |
| 248 int InitializeLocked(const ProcessingConfig& config) | 250 int InitializeLocked(const ProcessingConfig& config) |
| 249 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 251 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); |
| 250 void InitializeLevelController() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 252 void InitializeLevelController() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); |
| 251 void InitializeResidualEchoDetector() | 253 void InitializeResidualEchoDetector() |
| 252 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 254 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); |
| 253 void InitializeLowCutFilter() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 255 void InitializeLowCutFilter() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); |
| 256 void InitializeEchoCanceller3() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); |
| 254 | 257 |
| 255 void EmptyQueuedRenderAudio(); | 258 void EmptyQueuedRenderAudio(); |
| 256 void AllocateRenderQueue() | 259 void AllocateRenderQueue() |
| 257 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 260 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); |
| 258 void QueueRenderAudio(AudioBuffer* audio) | 261 void QueueRenderAudio(AudioBuffer* audio) |
| 259 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 262 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); |
| 260 | 263 |
| 261 // Capture-side exclusive methods possibly running APM in a multi-threaded | 264 // Capture-side exclusive methods possibly running APM in a multi-threaded |
| 262 // manner that are called with the render lock already acquired. | 265 // manner that are called with the render lock already acquired. |
| 263 int ProcessCaptureStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 266 int ProcessCaptureStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 intelligibility_enabled(intelligibility_enabled) {} | 378 intelligibility_enabled(intelligibility_enabled) {} |
| 376 // Only the rate and samples fields of capture_processing_format_ are used | 379 // Only the rate and samples fields of capture_processing_format_ are used |
| 377 // because the forward processing number of channels is mutable and is | 380 // because the forward processing number of channels is mutable and is |
| 378 // tracked by the capture_audio_. | 381 // tracked by the capture_audio_. |
| 379 StreamConfig capture_processing_format; | 382 StreamConfig capture_processing_format; |
| 380 int split_rate; | 383 int split_rate; |
| 381 int stream_delay_ms; | 384 int stream_delay_ms; |
| 382 bool beamformer_enabled; | 385 bool beamformer_enabled; |
| 383 bool intelligibility_enabled; | 386 bool intelligibility_enabled; |
| 384 bool level_controller_enabled = false; | 387 bool level_controller_enabled = false; |
| 388 bool echo_canceller3_enabled = false; |
| 385 } capture_nonlocked_; | 389 } capture_nonlocked_; |
| 386 | 390 |
| 387 struct ApmRenderState { | 391 struct ApmRenderState { |
| 388 ApmRenderState(); | 392 ApmRenderState(); |
| 389 ~ApmRenderState(); | 393 ~ApmRenderState(); |
| 390 std::unique_ptr<AudioConverter> render_converter; | 394 std::unique_ptr<AudioConverter> render_converter; |
| 391 std::unique_ptr<AudioBuffer> render_audio; | 395 std::unique_ptr<AudioBuffer> render_audio; |
| 392 } render_ GUARDED_BY(crit_render_); | 396 } render_ GUARDED_BY(crit_render_); |
| 393 | 397 |
| 394 size_t aec_render_queue_element_max_size_ GUARDED_BY(crit_render_) | 398 size_t aec_render_queue_element_max_size_ GUARDED_BY(crit_render_) |
| (...skipping 28 matching lines...) Expand all Loading... |
| 423 std::unique_ptr< | 427 std::unique_ptr< |
| 424 SwapQueue<std::vector<int16_t>, RenderQueueItemVerifier<int16_t>>> | 428 SwapQueue<std::vector<int16_t>, RenderQueueItemVerifier<int16_t>>> |
| 425 agc_render_signal_queue_; | 429 agc_render_signal_queue_; |
| 426 std::unique_ptr<SwapQueue<std::vector<float>, RenderQueueItemVerifier<float>>> | 430 std::unique_ptr<SwapQueue<std::vector<float>, RenderQueueItemVerifier<float>>> |
| 427 red_render_signal_queue_; | 431 red_render_signal_queue_; |
| 428 }; | 432 }; |
| 429 | 433 |
| 430 } // namespace webrtc | 434 } // namespace webrtc |
| 431 | 435 |
| 432 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_ | 436 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_ |
| OLD | NEW |