diff --git a/modules/audio_processing/agc2/input_volume_controller.cc b/modules/audio_processing/agc2/input_volume_controller.cc index 4f969e9b11..0fb3c19af9 100644 --- a/modules/audio_processing/agc2/input_volume_controller.cc +++ b/modules/audio_processing/agc2/input_volume_controller.cc @@ -163,17 +163,12 @@ int GetSpeechLevelErrorDb(float speech_level_dbfs, float speech_probability) { } // namespace -MonoInputVolumeController::MonoInputVolumeController( - int startup_min_level, - int clipped_level_min, - bool disable_digital_adaptive, - int min_mic_level, - int max_digital_gain_db, - int min_digital_gain_db) +MonoInputVolumeController::MonoInputVolumeController(int startup_min_level, + int clipped_level_min, + int min_mic_level, + int max_digital_gain_db) : min_mic_level_(min_mic_level), - disable_digital_adaptive_(disable_digital_adaptive), max_digital_gain_db_(max_digital_gain_db), - min_digital_gain_db_(min_digital_gain_db), max_level_(kMaxMicLevel), startup_min_level_(ClampLevel(startup_min_level, min_mic_level_)), clipped_level_min_(clipped_level_min) {} @@ -337,12 +332,7 @@ void MonoInputVolumeController::UpdateGain(int rms_error_db) { frames_since_update_gain_ = 0; int raw_digital_gain = 0; - if (!disable_digital_adaptive_) { - rms_error += min_digital_gain_db_; - - raw_digital_gain = - rtc::SafeClamp(rms_error, min_digital_gain_db_, max_digital_gain_db_); - } + raw_digital_gain = rtc::SafeClamp(rms_error, 0, max_digital_gain_db_); const int residual_gain = rtc::SafeClamp(rms_error - raw_digital_gain, -kMaxResidualGainChange, @@ -366,7 +356,6 @@ InputVolumeController::InputVolumeController(int num_capture_channels, min_mic_level_override_(GetMinMicLevelOverride()), use_min_channel_level_(!UseMaxAnalogChannelLevel()), num_capture_channels_(num_capture_channels), - disable_digital_adaptive_(!config.digital_adaptive_follows), frames_since_clipped_(config.clipped_wait_frames), capture_output_used_(true), clipped_level_step_(config.clipped_level_step), @@ -393,9 +382,8 @@ InputVolumeController::InputVolumeController(int num_capture_channels, for (auto& controller : channel_controllers_) { controller = std::make_unique( - config.startup_min_volume, config.clipped_level_min, - disable_digital_adaptive_, min_mic_level, config.max_digital_gain_db, - config.min_digital_gain_db); + config.startup_min_volume, config.clipped_level_min, min_mic_level, + config.max_digital_gain_db); } RTC_DCHECK(!channel_controllers_.empty()); diff --git a/modules/audio_processing/agc2/input_volume_controller.h b/modules/audio_processing/agc2/input_volume_controller.h index 65c47a0644..3d0be94881 100644 --- a/modules/audio_processing/agc2/input_volume_controller.h +++ b/modules/audio_processing/agc2/input_volume_controller.h @@ -43,8 +43,6 @@ class InputVolumeController final { // Lowest analog microphone level that will be applied in response to // clipping. int clipped_level_min = 70; - // If true, an adaptive digital gain is applied. - bool digital_adaptive_follows = true; // Amount the microphone level is lowered with every clipping event. // Limited to (0, 255]. int clipped_level_step = 15; @@ -56,10 +54,8 @@ class InputVolumeController final { int clipped_wait_frames = 300; // Enables clipping prediction functionality. bool enable_clipping_predictor = false; - // Minimum and maximum digital gain used before input volume is - // adjusted. + // Maximum digital gain used before input volume is adjusted. int max_digital_gain_db = 30; - int min_digital_gain_db = 0; }; // Ctor. `num_capture_channels` specifies the number of channels for the audio @@ -158,9 +154,6 @@ class InputVolumeController final { const bool use_min_channel_level_; const int num_capture_channels_; - // TODO(webrtc:7494): Replace with `digital_adaptive_follows_`. - const bool disable_digital_adaptive_; - int frames_since_clipped_; // TODO(bugs.webrtc.org/7494): Create a separate member for the applied input @@ -194,10 +187,8 @@ class MonoInputVolumeController { public: MonoInputVolumeController(int startup_min_level, int clipped_level_min, - bool disable_digital_adaptive, int min_mic_level, - int max_digital_gain_db, - int min_digital_gain_db); + int max_digital_gain_db); ~MonoInputVolumeController(); MonoInputVolumeController(const MonoInputVolumeController&) = delete; MonoInputVolumeController& operator=(const MonoInputVolumeController&) = @@ -241,10 +232,7 @@ class MonoInputVolumeController { const int min_mic_level_; - // TODO(webrtc:7494): Replace with `digital_adaptive_follows_`. - const bool disable_digital_adaptive_; const int max_digital_gain_db_; - const int min_digital_gain_db_; int level_ = 0; int max_level_; diff --git a/modules/audio_processing/agc2/input_volume_controller_unittest.cc b/modules/audio_processing/agc2/input_volume_controller_unittest.cc index 3657cd62e2..7c799217aa 100644 --- a/modules/audio_processing/agc2/input_volume_controller_unittest.cc +++ b/modules/audio_processing/agc2/input_volume_controller_unittest.cc @@ -45,7 +45,6 @@ constexpr int kClippedWaitFrames = 300; constexpr float kHighSpeechProbability = 0.7f; constexpr float kSpeechLevel = -25.0f; constexpr int kMaxDigitalGainDb = 12; -constexpr int kMinDigitalGainDb = 0; constexpr float kMinSample = std::numeric_limits::min(); constexpr float kMaxSample = std::numeric_limits::max(); @@ -68,13 +67,11 @@ std::unique_ptr CreateInputVolumeController( .enabled = true, .startup_min_volume = startup_min_volume, .clipped_level_min = kClippedMin, - .digital_adaptive_follows = true, .clipped_level_step = clipped_level_step, .clipped_ratio_threshold = clipped_ratio_threshold, .clipped_wait_frames = clipped_wait_frames, .enable_clipping_predictor = enable_clipping_predictor, .max_digital_gain_db = kMaxDigitalGainDb, - .min_digital_gain_db = kMinDigitalGainDb, }; return std::make_unique(/*num_capture_channels=*/1, @@ -261,13 +258,11 @@ constexpr InputVolumeControllerConfig GetInputVolumeControllerTestConfig() { .enabled = true, .startup_min_volume = kInitialInputVolume, .clipped_level_min = kClippedMin, - .digital_adaptive_follows = true, .clipped_level_step = kClippedLevelStep, .clipped_ratio_threshold = kClippedRatioThreshold, .clipped_wait_frames = kClippedWaitFrames, .enable_clipping_predictor = kDefaultClippingPredictorConfig.enabled, .max_digital_gain_db = kMaxDigitalGainDb, - .min_digital_gain_db = kMinDigitalGainDb, }; return config; } @@ -1139,7 +1134,6 @@ TEST(InputVolumeControllerTest, InputVolumeControllerConfig config = kDefaultInputVolumeControllerConfig; config.enabled = true; config.startup_min_volume = kInitialInputVolume; - config.digital_adaptive_follows = true; config.clipped_level_step = 64; config.clipped_ratio_threshold = kClippedRatioThreshold; config.clipped_wait_frames = kClippedWaitFrames; @@ -1206,7 +1200,6 @@ TEST(InputVolumeControllerTest, InputVolumeControllerConfig config = kDefaultInputVolumeControllerConfig; config.enabled = true; config.startup_min_volume = kInitialInputVolume; - config.digital_adaptive_follows = true; config.clipped_level_step = 64; config.clipped_ratio_threshold = kClippedRatioThreshold; config.clipped_wait_frames = kClippedWaitFrames;