AGC2: Remove unused parameters

- `NoiseEstimator` and `LevelEstimator` enums
- `vad_probability_attack`
- `level_estimator_adjacent_speech_frames_threshold`
- `use_saturation_protector`
- `gain_applier_adjacent_speech_frames_threshold`
- `initial_saturation_margin_db`
- `extra_saturation_margin_db`

Bug: webrtc:7494
Change-Id: I12e40c8efe2d2126d7597ec18a78cf9d5d39baf2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232903
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35096}
diff --git a/modules/audio_processing/agc2/adaptive_agc.cc b/modules/audio_processing/agc2/adaptive_agc.cc
index a9f9622..0df4a26 100644
--- a/modules/audio_processing/agc2/adaptive_agc.cc
+++ b/modules/audio_processing/agc2/adaptive_agc.cc
@@ -22,8 +22,6 @@
 
 using AdaptiveDigitalConfig =
     AudioProcessing::Config::GainController2::AdaptiveDigital;
-using NoiseEstimatorType =
-    AudioProcessing::Config::GainController2::NoiseEstimator;
 
 // Detects the available CPU features and applies any kill-switches.
 AvailableCpuFeatures GetAllowedCpuFeatures(
@@ -63,9 +61,6 @@
   RTC_DCHECK(apm_data_dumper);
   RTC_DCHECK(noise_level_estimator_);
   RTC_DCHECK(saturation_protector_);
-  if (!config.use_saturation_protector) {
-    RTC_LOG(LS_WARNING) << "The saturation protector cannot be disabled.";
-  }
 }
 
 AdaptiveAgc::~AdaptiveAgc() = default;
diff --git a/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc b/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
index 507aa12..ca3279e 100644
--- a/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+++ b/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
@@ -19,9 +19,6 @@
 namespace webrtc {
 namespace {
 
-using LevelEstimatorType =
-    AudioProcessing::Config::GainController2::LevelEstimator;
-
 float ClampLevelEstimateDbfs(float level_estimate_dbfs) {
   return rtc::SafeClamp<float>(level_estimate_dbfs, -90.f, 30.f);
 }
diff --git a/modules/audio_processing/agc2/adaptive_mode_level_estimator.h b/modules/audio_processing/agc2/adaptive_mode_level_estimator.h
index 6d44938..e39b6ce 100644
--- a/modules/audio_processing/agc2/adaptive_mode_level_estimator.h
+++ b/modules/audio_processing/agc2/adaptive_mode_level_estimator.h
@@ -47,14 +47,13 @@
     inline bool operator!=(const LevelEstimatorState& s) const {
       return !(*this == s);
     }
+    // TODO(bugs.webrtc.org/7494): Remove `time_to_confidence_ms` if redundant.
+    int time_to_confidence_ms;
     struct Ratio {
       float numerator;
       float denominator;
       float GetRatio() const;
-    };
-    // TODO(crbug.com/webrtc/7494): Remove time_to_confidence_ms if redundant.
-    int time_to_confidence_ms;
-    Ratio level_dbfs;
+    } level_dbfs;
   };
   static_assert(std::is_trivially_copyable<LevelEstimatorState>::value, "");
 
diff --git a/modules/audio_processing/gain_controller2.cc b/modules/audio_processing/gain_controller2.cc
index 74b63c9..195044a 100644
--- a/modules/audio_processing/gain_controller2.cc
+++ b/modules/audio_processing/gain_controller2.cc
@@ -106,16 +106,8 @@
   const auto& fixed = config.fixed_digital;
   const auto& adaptive = config.adaptive_digital;
   return fixed.gain_db >= 0.f && fixed.gain_db < 50.f &&
-         adaptive.vad_probability_attack > 0.f &&
-         adaptive.vad_probability_attack <= 1.f &&
-         adaptive.level_estimator_adjacent_speech_frames_threshold >= 1 &&
-         adaptive.initial_saturation_margin_db >= 0.f &&
-         adaptive.initial_saturation_margin_db <= 100.f &&
-         adaptive.extra_saturation_margin_db >= 0.f &&
-         adaptive.extra_saturation_margin_db <= 100.f &&
-         adaptive.gain_applier_adjacent_speech_frames_threshold >= 1 &&
-         adaptive.max_gain_change_db_per_second > 0.f &&
-         adaptive.max_output_noise_level_dbfs <= 0.f;
+         adaptive.max_gain_change_db_per_second > 0.0f &&
+         adaptive.max_output_noise_level_dbfs <= 0.0f;
 }
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/gain_controller2_unittest.cc b/modules/audio_processing/gain_controller2_unittest.cc
index 8f65a89..a4a6462 100644
--- a/modules/audio_processing/gain_controller2_unittest.cc
+++ b/modules/audio_processing/gain_controller2_unittest.cc
@@ -129,64 +129,6 @@
   EXPECT_TRUE(GainController2::Validate(config));
 }
 
-TEST(GainController2, CheckAdaptiveDigitalVadProbabilityAttackConfig) {
-  AudioProcessing::Config::GainController2 config;
-  // Reject invalid attack.
-  config.adaptive_digital.vad_probability_attack = -123.f;
-  EXPECT_FALSE(GainController2::Validate(config));
-  config.adaptive_digital.vad_probability_attack = 0.f;
-  EXPECT_FALSE(GainController2::Validate(config));
-  config.adaptive_digital.vad_probability_attack = 42.f;
-  EXPECT_FALSE(GainController2::Validate(config));
-  // Accept valid attack.
-  config.adaptive_digital.vad_probability_attack = 0.1f;
-  EXPECT_TRUE(GainController2::Validate(config));
-  config.adaptive_digital.vad_probability_attack = 1.f;
-  EXPECT_TRUE(GainController2::Validate(config));
-}
-
-TEST(GainController2,
-     CheckAdaptiveDigitalLevelEstimatorSpeechFramesThresholdConfig) {
-  AudioProcessing::Config::GainController2 config;
-  config.adaptive_digital.level_estimator_adjacent_speech_frames_threshold = 0;
-  EXPECT_FALSE(GainController2::Validate(config));
-  config.adaptive_digital.level_estimator_adjacent_speech_frames_threshold = 1;
-  EXPECT_TRUE(GainController2::Validate(config));
-  config.adaptive_digital.level_estimator_adjacent_speech_frames_threshold = 7;
-  EXPECT_TRUE(GainController2::Validate(config));
-}
-
-TEST(GainController2, CheckAdaptiveDigitalInitialSaturationMarginConfig) {
-  AudioProcessing::Config::GainController2 config;
-  config.adaptive_digital.initial_saturation_margin_db = -1.f;
-  EXPECT_FALSE(GainController2::Validate(config));
-  config.adaptive_digital.initial_saturation_margin_db = 0.f;
-  EXPECT_TRUE(GainController2::Validate(config));
-  config.adaptive_digital.initial_saturation_margin_db = 50.f;
-  EXPECT_TRUE(GainController2::Validate(config));
-}
-
-TEST(GainController2, CheckAdaptiveDigitalExtraSaturationMarginConfig) {
-  AudioProcessing::Config::GainController2 config;
-  config.adaptive_digital.extra_saturation_margin_db = -1.f;
-  EXPECT_FALSE(GainController2::Validate(config));
-  config.adaptive_digital.extra_saturation_margin_db = 0.f;
-  EXPECT_TRUE(GainController2::Validate(config));
-  config.adaptive_digital.extra_saturation_margin_db = 50.f;
-  EXPECT_TRUE(GainController2::Validate(config));
-}
-
-TEST(GainController2,
-     CheckAdaptiveDigitalGainApplierSpeechFramesThresholdConfig) {
-  AudioProcessing::Config::GainController2 config;
-  config.adaptive_digital.gain_applier_adjacent_speech_frames_threshold = 0;
-  EXPECT_FALSE(GainController2::Validate(config));
-  config.adaptive_digital.gain_applier_adjacent_speech_frames_threshold = 1;
-  EXPECT_TRUE(GainController2::Validate(config));
-  config.adaptive_digital.gain_applier_adjacent_speech_frames_threshold = 7;
-  EXPECT_TRUE(GainController2::Validate(config));
-}
-
 TEST(GainController2, CheckAdaptiveDigitalMaxGainChangeSpeedConfig) {
   AudioProcessing::Config::GainController2 config;
   config.adaptive_digital.max_gain_change_db_per_second = -1.f;
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 15dcc39..8f07c6e 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -356,9 +356,6 @@
         return !(*this == rhs);
       }
 
-      // TODO(crbug.com/webrtc/7494): Remove `LevelEstimator`.
-      enum LevelEstimator { kRms, kPeak };
-      enum NoiseEstimator { kStationaryNoise, kNoiseFloor };
       bool enabled = false;
       struct FixedDigital {
         float gain_db = 0.0f;
@@ -379,15 +376,6 @@
         bool sse2_allowed = true;
         bool avx2_allowed = true;
         bool neon_allowed = true;
-        // TODO(crbug.com/webrtc/7494): Remove deprecated settings below.
-        NoiseEstimator noise_estimator = kNoiseFloor;
-        float vad_probability_attack = 1.0f;
-        LevelEstimator level_estimator = kRms;
-        int level_estimator_adjacent_speech_frames_threshold = 12;
-        bool use_saturation_protector = true;
-        float initial_saturation_margin_db = 25.0f;
-        float extra_saturation_margin_db = 5.0f;
-        int gain_applier_adjacent_speech_frames_threshold = 12;
       } adaptive_digital;
     } gain_controller2;
 
diff --git a/modules/audio_processing/test/audio_processing_simulator.cc b/modules/audio_processing/test/audio_processing_simulator.cc
index c61110f..7a48c0f 100644
--- a/modules/audio_processing/test/audio_processing_simulator.cc
+++ b/modules/audio_processing/test/audio_processing_simulator.cc
@@ -487,8 +487,6 @@
     if (settings_.agc2_use_adaptive_gain) {
       apm_config.gain_controller2.adaptive_digital.enabled =
           *settings_.agc2_use_adaptive_gain;
-      apm_config.gain_controller2.adaptive_digital.level_estimator =
-          settings_.agc2_adaptive_level_estimator;
     }
   }
   if (settings_.use_pre_amplifier) {
diff --git a/modules/audio_processing/test/audio_processing_simulator.h b/modules/audio_processing/test/audio_processing_simulator.h
index 9539e58..4a11230 100644
--- a/modules/audio_processing/test/audio_processing_simulator.h
+++ b/modules/audio_processing/test/audio_processing_simulator.h
@@ -115,8 +115,6 @@
   absl::optional<int> agc_compression_gain;
   absl::optional<bool> agc2_use_adaptive_gain;
   absl::optional<float> agc2_fixed_gain_db;
-  AudioProcessing::Config::GainController2::LevelEstimator
-      agc2_adaptive_level_estimator;
   absl::optional<float> pre_amplifier_gain_factor;
   absl::optional<float> pre_gain_factor;
   absl::optional<float> post_gain_factor;
diff --git a/modules/audio_processing/test/audioproc_float_impl.cc b/modules/audio_processing/test/audioproc_float_impl.cc
index 1fc39bb..7ece5d3 100644
--- a/modules/audio_processing/test/audioproc_float_impl.cc
+++ b/modules/audio_processing/test/audioproc_float_impl.cc
@@ -159,10 +159,6 @@
           agc2_fixed_gain_db,
           kParameterNotSpecifiedValue,
           "AGC2 fixed gain (dB) to apply");
-ABSL_FLAG(std::string,
-          agc2_adaptive_level_estimator,
-          "RMS",
-          "AGC2 adaptive digital level estimator to use [RMS, peak]");
 ABSL_FLAG(float,
           pre_amplifier_gain_factor,
           kParameterNotSpecifiedValue,
@@ -341,10 +337,6 @@
     "processing module, either based on wav files or "
     "protobuf debug dump recordings.\n";
 
-std::vector<std::string> GetAgc2AdaptiveLevelEstimatorNames() {
-  return {"RMS", "peak"};
-}
-
 void SetSettingIfSpecified(const std::string& value,
                            absl::optional<std::string>* parameter) {
   if (value.compare("") != 0) {
@@ -374,27 +366,6 @@
   }
 }
 
-AudioProcessing::Config::GainController2::LevelEstimator
-MapAgc2AdaptiveLevelEstimator(absl::string_view name) {
-  if (name.compare("RMS") == 0) {
-    return AudioProcessing::Config::GainController2::LevelEstimator::kRms;
-  }
-  if (name.compare("peak") == 0) {
-    return AudioProcessing::Config::GainController2::LevelEstimator::kPeak;
-  }
-  auto concat_strings =
-      [](const std::vector<std::string>& strings) -> std::string {
-    rtc::StringBuilder ss;
-    for (const auto& s : strings) {
-      ss << " " << s;
-    }
-    return ss.Release();
-  };
-  RTC_CHECK(false)
-      << "Invalid value for agc2_adaptive_level_estimator, valid options:"
-      << concat_strings(GetAgc2AdaptiveLevelEstimatorNames()) << ".";
-}
-
 SimulationSettings CreateSettings() {
   SimulationSettings settings;
   if (absl::GetFlag(FLAGS_all_default)) {
@@ -467,8 +438,6 @@
 
   SetSettingIfSpecified(absl::GetFlag(FLAGS_agc2_fixed_gain_db),
                         &settings.agc2_fixed_gain_db);
-  settings.agc2_adaptive_level_estimator = MapAgc2AdaptiveLevelEstimator(
-      absl::GetFlag(FLAGS_agc2_adaptive_level_estimator));
   SetSettingIfSpecified(absl::GetFlag(FLAGS_pre_amplifier_gain_factor),
                         &settings.pre_amplifier_gain_factor);
   SetSettingIfSpecified(absl::GetFlag(FLAGS_pre_gain_factor),
diff --git a/test/fuzzers/audio_processing_configs_fuzzer.cc b/test/fuzzers/audio_processing_configs_fuzzer.cc
index cb2f7a8..9bed5c1 100644
--- a/test/fuzzers/audio_processing_configs_fuzzer.cc
+++ b/test/fuzzers/audio_processing_configs_fuzzer.cc
@@ -76,10 +76,8 @@
   field_trial::InitFieldTrialsFromString(field_trial_string->c_str());
 
   bool use_agc2_adaptive_digital = fuzz_data->ReadOrDefaultValue(true);
-  bool use_agc2_adaptive_digital_rms_estimator =
-      fuzz_data->ReadOrDefaultValue(true);
-  bool use_agc2_adaptive_digital_saturation_protector =
-      fuzz_data->ReadOrDefaultValue(true);
+  static_cast<void>(fuzz_data->ReadOrDefaultValue(true));
+  static_cast<void>(fuzz_data->ReadOrDefaultValue(true));
 
   // Ignore a few bytes. Bytes from this segment will be used for
   // future config flag changes. We assume 40 bytes is enough for
@@ -123,14 +121,6 @@
   apm_config.gain_controller2.fixed_digital.gain_db = gain_controller2_gain_db;
   apm_config.gain_controller2.adaptive_digital.enabled =
       use_agc2_adaptive_digital;
-  apm_config.gain_controller2.adaptive_digital.level_estimator =
-      use_agc2_adaptive_digital_rms_estimator
-          ? webrtc::AudioProcessing::Config::GainController2::LevelEstimator::
-                kRms
-          : webrtc::AudioProcessing::Config::GainController2::LevelEstimator::
-                kPeak;
-  apm_config.gain_controller2.adaptive_digital.use_saturation_protector =
-      use_agc2_adaptive_digital_saturation_protector;
   apm_config.noise_suppression.enabled = use_ns;
   apm_config.transient_suppression.enabled = use_ts;
   apm_config.voice_detection.enabled = use_vad;