From dc107965bdbf153fb3c237a66bcd340e43343084 Mon Sep 17 00:00:00 2001 From: Alessio Bazzica Date: Mon, 3 Dec 2018 18:22:34 +0100 Subject: [PATCH] Fix AGC2 fuzzer coverage. Bug: webrtc:10084 Change-Id: Icc51994fe5ab16188c41452e887cbe7a6b8b9aff Reviewed-on: https://webrtc-review.googlesource.com/c/112941 Commit-Queue: Alessio Bazzica Reviewed-by: Sam Zackrisson Cr-Commit-Position: refs/heads/master@{#25906} --- .../audio_processing_configs_fuzzer.cc | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/test/fuzzers/audio_processing_configs_fuzzer.cc b/test/fuzzers/audio_processing_configs_fuzzer.cc index dd0013684e..4967a703cb 100644 --- a/test/fuzzers/audio_processing_configs_fuzzer.cc +++ b/test/fuzzers/audio_processing_configs_fuzzer.cc @@ -85,7 +85,7 @@ std::unique_ptr CreateApm(test::FuzzDataHelper* fuzz_data, bool use_le = fuzz_data->ReadOrDefaultValue(true); bool use_vad = fuzz_data->ReadOrDefaultValue(true); bool use_agc_limiter = fuzz_data->ReadOrDefaultValue(true); - bool use_agc2_limiter = fuzz_data->ReadOrDefaultValue(true); + bool use_agc2 = fuzz_data->ReadOrDefaultValue(true); // Read an int8 value, but don't let it be too large or small. const float gain_controller2_gain_db = @@ -105,6 +105,12 @@ std::unique_ptr CreateApm(test::FuzzDataHelper* fuzz_data, } 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); + // Ignore a few bytes. Bytes from this segment will be used for // future config flag changes. We assume 40 bytes is enough for // configuring the APM. @@ -149,9 +155,18 @@ std::unique_ptr CreateApm(test::FuzzDataHelper* fuzz_data, apm_config.echo_canceller.mobile_mode = use_aecm; apm_config.residual_echo_detector.enabled = red; apm_config.high_pass_filter.enabled = hpf; - apm_config.gain_controller2.enabled = use_agc2_limiter; - + apm_config.gain_controller2.enabled = use_agc2; 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->ApplyConfig(apm_config);