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

@ -68,17 +68,6 @@ struct ExtendedFilter {
bool enabled;
};
// Enables the next generation AEC functionality. This feature replaces the
// standard methods for echo removal in the AEC. This configuration only applies
// to EchoCancellation and not EchoControlMobile. It can be set in the
// constructor or using AudioProcessing::SetExtraOptions().
struct EchoCanceller3 {
EchoCanceller3() : enabled(false) {}
explicit EchoCanceller3(bool enabled) : enabled(enabled) {}
static const ConfigOptionID identifier = ConfigOptionID::kEchoCanceller3;
bool enabled;
};
// Enables the refined linear filter adaptation in the echo canceller.
// This configuration only applies to EchoCancellation and not
// EchoControlMobile. It can be set in the constructor
@ -274,6 +263,14 @@ class AudioProcessing {
struct HighPassFilter {
bool enabled = false;
} high_pass_filter;
// Enables the next generation AEC functionality. This feature replaces the
// standard methods for echo removal in the AEC.
// The functionality is not yet activated in the code and turning this on
// does not yet have the desired behavior.
struct EchoCanceller3 {
bool enabled = false;
} echo_canceller3;
};
// TODO(mgraczyk): Remove once all methods that use ChannelLayout are gone.