AGC2 adaptive digital controller config clean-up

- Remove dry-run option
- Hard-code `adjacent_speech_frames_threshold` and
  `vad_reset_period_ms`
- Expose `initial_gain_db` via field trial

Tested: adaptive digital controller bit-exactness verified

Bug: webrtc:7494
Change-Id: I6166611f91320b6c37de3f8e553c06c2ed95b772
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287222
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38862}
diff --git a/modules/audio_processing/audio_processing_impl_unittest.cc b/modules/audio_processing/audio_processing_impl_unittest.cc
index b394e93..10c11a2 100644
--- a/modules/audio_processing/audio_processing_impl_unittest.cc
+++ b/modules/audio_processing/audio_processing_impl_unittest.cc
@@ -1235,6 +1235,70 @@
   EXPECT_EQ(ProcessInputVolume(*apm, kOneFrame, /*initial_volume=*/135), 135);
 }
 
+class GainController2FieldTrialParametrizedTest
+    : public ::testing::TestWithParam<AudioProcessing::Config> {};
+
+TEST_P(GainController2FieldTrialParametrizedTest,
+       CheckAgc2AdaptiveDigitalOverridesApplied) {
+  webrtc::test::ScopedFieldTrials field_trials(
+      "WebRTC-Audio-GainController2/"
+      "Enabled,"
+      "enable_clipping_predictor:true,"
+      "clipped_level_min:20,"
+      "clipped_level_step:30,"
+      "clipped_ratio_threshold:0.4,"
+      "clipped_wait_frames:50,"
+      "target_range_max_dbfs:-6,"
+      "target_range_min_dbfs:-70,"
+      "update_input_volume_wait_frames:80,"
+      "speech_probability_threshold:0.9,"
+      "speech_ratio_threshold:1.0,"
+      "headroom_db:10,"
+      "max_gain_db:20,"
+      "initial_gain_db:7,"
+      "max_gain_change_db_per_second:5,"
+      "max_output_noise_level_dbfs:-40/");
+
+  auto adjusted_config =
+      AudioProcessingBuilder().SetConfig(GetParam()).Create()->GetConfig();
+
+  EXPECT_FALSE(adjusted_config.gain_controller1.enabled);
+  EXPECT_TRUE(adjusted_config.gain_controller2.enabled);
+  EXPECT_TRUE(adjusted_config.gain_controller2.adaptive_digital.enabled);
+  EXPECT_TRUE(adjusted_config.gain_controller2.input_volume_controller.enabled);
+
+  EXPECT_EQ(adjusted_config.gain_controller2.adaptive_digital.headroom_db, 10);
+  EXPECT_EQ(adjusted_config.gain_controller2.adaptive_digital.max_gain_db, 20);
+  EXPECT_EQ(adjusted_config.gain_controller2.adaptive_digital.initial_gain_db,
+            7);
+  EXPECT_EQ(adjusted_config.gain_controller2.adaptive_digital
+                .max_gain_change_db_per_second,
+            5);
+  EXPECT_EQ(adjusted_config.gain_controller2.adaptive_digital
+                .max_output_noise_level_dbfs,
+            -40);
+}
+
+INSTANTIATE_TEST_SUITE_P(
+    AudioProcessingImplTest,
+    GainController2FieldTrialParametrizedTest,
+    ::testing::Values(
+        // Full AGC1.
+        AudioProcessing::Config{
+            .gain_controller1 =
+                {.enabled = true,
+                 .analog_gain_controller = {.enabled = true,
+                                            .enable_digital_adaptive = true}},
+            .gain_controller2 = {.enabled = false}},
+        // Hybrid AGC.
+        AudioProcessing::Config{
+            .gain_controller1 =
+                {.enabled = true,
+                 .analog_gain_controller = {.enabled = true,
+                                            .enable_digital_adaptive = false}},
+            .gain_controller2 = {.enabled = true,
+                                 .adaptive_digital = {.enabled = true}}}));
+
 TEST(AudioProcessingImplGainController2FieldTrialTest,
      ConfigAdjustedWhenExperimentEnabledAndAgc1AnalogEnabled) {
   constexpr AudioProcessing::Config::GainController2::AdaptiveDigital
@@ -1254,6 +1318,7 @@
       "speech_ratio_threshold:1.0,"
       "headroom_db:10,"
       "max_gain_db:20,"
+      "initial_gain_db:7,"
       "max_gain_change_db_per_second:3,"
       "max_output_noise_level_dbfs:-40/");
 
@@ -1318,6 +1383,7 @@
       "speech_ratio_threshold:1.0,"
       "headroom_db:10,"
       "max_gain_db:20,"
+      "initial_gain_db:7,"
       "max_gain_change_db_per_second:3,"
       "max_output_noise_level_dbfs:-40/");
 
@@ -1382,6 +1448,7 @@
       "speech_ratio_threshold:1.0,"
       "headroom_db:10,"
       "max_gain_db:20,"
+      "initial_gain_db:7,"
       "max_gain_change_db_per_second:3,"
       "max_output_noise_level_dbfs:-40/");
 
@@ -1434,6 +1501,7 @@
       "speech_ratio_threshold:1.0,"
       "headroom_db:10,"
       "max_gain_db:20,"
+      "initial_gain_db:7,"
       "max_gain_change_db_per_second:3,"
       "max_output_noise_level_dbfs:-40/");