This CL introduces a new APM sub-module named AGC2 that does not use the band
split domain and only implements floating point operations (to avoid spectral
leakage issues and unnecessary complexity).
The goal of this CL is adding the new sub-module into APM without providing an
implementation that could replace the existing gain control modules. The focus
is in fact on initialization, reset, and configuration of AGC2.
The module itself only applies a hard-coded gain value. This behavior will
change in the coming CLs.
BUG=webrtc:7494
Review-Url: https://codereview.webrtc.org/2848593002
Cr-Commit-Position: refs/heads/master@{#18222}
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index a1cd398..e470d0d 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -267,6 +267,14 @@
struct EchoCanceller3 {
bool enabled = false;
} echo_canceller3;
+
+ // Enables the next generation AGC functionality. This feature replaces the
+ // standard methods of gain control in the previous AGC.
+ // The functionality is not yet activated in the code and turning this on
+ // does not yet have the desired behavior.
+ struct GainController2 {
+ bool enabled = false;
+ } gain_controller2;
};
// TODO(mgraczyk): Remove once all methods that use ChannelLayout are gone.