InputVolumeController: Hardcode some digital gain parameters

In InputVolumeController/MonoInputVolumeController, set
min_digital_gain_db_ and disable_digital_adaptive_ to fixed values
ahead of replacing speech level target as well as digital gain
minimum and maximum with target range parameters.

In InputVolumeController, remove digital_adaptive_follows and
min_digital_gain_db from the config as they are no longer needed.

Bug: webrtc:7494
Change-Id: I1378b6e182224c41038c6d8c649e7a28961f73d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280962
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38554}
This commit is contained in:
Hanna Silen
2022-11-04 10:53:49 +01:00
committed by WebRTC LUCI CQ
parent 49a6097e95
commit dd34a482d9
3 changed files with 9 additions and 40 deletions

View File

@ -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<MonoInputVolumeController>(
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());