AGC: Route clipping parameter from webrtc::Config to AGC
This change enables experimentation with the clipping minimum level
parameter in the gain control.
BUG=webrtc:6622
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
Review-Url: https://codereview.webrtc.org/2543753006
Cr-Commit-Position: refs/heads/master@{#15426}
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index d3ae3e8..d03c7f4 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -114,15 +114,21 @@
#else
static const int kAgcStartupMinVolume = 0;
#endif // defined(WEBRTC_CHROMIUM_BUILD)
+static constexpr int kClippedLevelMin = 170;
struct ExperimentalAgc {
- ExperimentalAgc() : enabled(true), startup_min_volume(kAgcStartupMinVolume) {}
- explicit ExperimentalAgc(bool enabled)
- : enabled(enabled), startup_min_volume(kAgcStartupMinVolume) {}
+ ExperimentalAgc() = default;
+ explicit ExperimentalAgc(bool enabled) : enabled(enabled) {}
ExperimentalAgc(bool enabled, int startup_min_volume)
: enabled(enabled), startup_min_volume(startup_min_volume) {}
+ ExperimentalAgc(bool enabled, int startup_min_volume, int clipped_level_min)
+ : enabled(enabled),
+ startup_min_volume(startup_min_volume),
+ clipped_level_min(clipped_level_min) {}
static const ConfigOptionID identifier = ConfigOptionID::kExperimentalAgc;
- bool enabled;
- int startup_min_volume;
+ bool enabled = true;
+ int startup_min_volume = kAgcStartupMinVolume;
+ // Lowest microphone level that will be applied in response to clipping.
+ int clipped_level_min = kClippedLevelMin;
};
// Use to enable experimental noise suppression. It can be set in the