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}
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index d03c7f4..d1a711d 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -68,17 +68,6 @@
   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 @@
     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.