This CL adds the basic framework for AEC3 in the audio processing module.

It will be followed by a number of other CLs that extends this framework.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2567513003
Cr-Commit-Position: refs/heads/master@{#15593}
This commit is contained in:
peah
2016-12-14 01:16:23 -08:00
committed by Commit bot
parent db397429d4
commit e0eae3cec6
14 changed files with 208 additions and 66 deletions

View File

@ -168,6 +168,7 @@ class AudioProcessingImpl : public AudioProcessing {
bool beamformer_enabled,
bool adaptive_gain_controller_enabled,
bool level_controller_enabled,
bool echo_canceller3_enabled,
bool voice_activity_detector_enabled,
bool level_estimator_enabled,
bool transient_suppressor_enabled);
@ -186,6 +187,7 @@ class AudioProcessingImpl : public AudioProcessing {
bool beamformer_enabled_ = false;
bool adaptive_gain_controller_enabled_ = false;
bool level_controller_enabled_ = false;
bool echo_canceller3_enabled_ = false;
bool level_estimator_enabled_ = false;
bool voice_activity_detector_enabled_ = false;
bool transient_suppressor_enabled_ = false;
@ -251,6 +253,7 @@ class AudioProcessingImpl : public AudioProcessing {
void InitializeResidualEchoDetector()
EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
void InitializeLowCutFilter() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
void InitializeEchoCanceller3() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
void EmptyQueuedRenderAudio();
void AllocateRenderQueue()
@ -382,6 +385,7 @@ class AudioProcessingImpl : public AudioProcessing {
bool beamformer_enabled;
bool intelligibility_enabled;
bool level_controller_enabled = false;
bool echo_canceller3_enabled = false;
} capture_nonlocked_;
struct ApmRenderState {