diff --git a/modules/audio_processing/agc2/BUILD.gn b/modules/audio_processing/agc2/BUILD.gn index ffe4bf47c8..c8000feaa1 100644 --- a/modules/audio_processing/agc2/BUILD.gn +++ b/modules/audio_processing/agc2/BUILD.gn @@ -86,16 +86,8 @@ rtc_library("biquad_filter") { ] } -rtc_library("common") { - sources = [ - "agc2_common.cc", - "agc2_common.h", - ] - deps = [ - "../../../rtc_base:rtc_base_approved", - "../../../system_wrappers:field_trial", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +rtc_source_set("common") { + sources = [ "agc2_common.h" ] } rtc_library("fixed_digital") { @@ -201,6 +193,7 @@ rtc_library("adaptive_digital_unittests") { "../../../rtc_base:checks", "../../../rtc_base:gunit_helpers", "../../../rtc_base:rtc_base_approved", + "../../../test:test_support", ] } diff --git a/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc b/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc index b55a0f5873..6f28f86378 100644 --- a/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc +++ b/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc @@ -27,9 +27,9 @@ AdaptiveModeLevelEstimator::AdaptiveModeLevelEstimator( : AdaptiveModeLevelEstimator( apm_data_dumper, AudioProcessing::Config::GainController2::LevelEstimator::kRms, - /*use_saturation_protector=*/true, - GetInitialSaturationMarginDb(), - GetExtraSaturationMarginOffsetDb()) {} + kDefaultUseSaturationProtector, + kDefaultInitialSaturationMarginDb, + kDefaultExtraSaturationMarginDb) {} AdaptiveModeLevelEstimator::AdaptiveModeLevelEstimator( ApmDataDumper* apm_data_dumper, @@ -39,7 +39,7 @@ AdaptiveModeLevelEstimator::AdaptiveModeLevelEstimator( : AdaptiveModeLevelEstimator(apm_data_dumper, level_estimator, use_saturation_protector, - GetInitialSaturationMarginDb(), + kDefaultInitialSaturationMarginDb, extra_saturation_margin_db) {} AdaptiveModeLevelEstimator::AdaptiveModeLevelEstimator( diff --git a/modules/audio_processing/agc2/adaptive_mode_level_estimator_unittest.cc b/modules/audio_processing/agc2/adaptive_mode_level_estimator_unittest.cc index 6ab0655094..471930a612 100644 --- a/modules/audio_processing/agc2/adaptive_mode_level_estimator_unittest.cc +++ b/modules/audio_processing/agc2/adaptive_mode_level_estimator_unittest.cc @@ -46,8 +46,6 @@ struct TestLevelEstimator { std::unique_ptr estimator; }; -} // namespace - TEST(AutomaticGainController2AdaptiveModeLevelEstimator, EstimatorShouldNotCrash) { TestLevelEstimator level_estimator; @@ -180,4 +178,5 @@ TEST(AutomaticGainController2AdaptiveModeLevelEstimator, kMaxDifferenceDb); } +} // namespace } // namespace webrtc diff --git a/modules/audio_processing/agc2/agc2_common.cc b/modules/audio_processing/agc2/agc2_common.cc deleted file mode 100644 index 3f697d12ac..0000000000 --- a/modules/audio_processing/agc2/agc2_common.cc +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#include "modules/audio_processing/agc2/agc2_common.h" - -#include - -#include - -#include "system_wrappers/include/field_trial.h" - -namespace webrtc { - -float GetInitialSaturationMarginDb() { - constexpr char kForceInitialSaturationMarginFieldTrial[] = - "WebRTC-Audio-Agc2ForceInitialSaturationMargin"; - - const bool use_forced_initial_saturation_margin = - webrtc::field_trial::IsEnabled(kForceInitialSaturationMarginFieldTrial); - if (use_forced_initial_saturation_margin) { - const std::string field_trial_string = webrtc::field_trial::FindFullName( - kForceInitialSaturationMarginFieldTrial); - float margin_db = -1; - if (sscanf(field_trial_string.c_str(), "Enabled-%f", &margin_db) == 1 && - margin_db >= 12.f && margin_db <= 25.f) { - return margin_db; - } - } - constexpr float kDefaultInitialSaturationMarginDb = 20.f; - return kDefaultInitialSaturationMarginDb; -} - -float GetExtraSaturationMarginOffsetDb() { - constexpr char kForceExtraSaturationMarginFieldTrial[] = - "WebRTC-Audio-Agc2ForceExtraSaturationMargin"; - - const bool use_forced_extra_saturation_margin = - webrtc::field_trial::IsEnabled(kForceExtraSaturationMarginFieldTrial); - if (use_forced_extra_saturation_margin) { - const std::string field_trial_string = webrtc::field_trial::FindFullName( - kForceExtraSaturationMarginFieldTrial); - float margin_db = -1; - if (sscanf(field_trial_string.c_str(), "Enabled-%f", &margin_db) == 1 && - margin_db >= 0.f && margin_db <= 10.f) { - return margin_db; - } - } - constexpr float kDefaultExtraSaturationMarginDb = 2.f; - return kDefaultExtraSaturationMarginDb; -} -} // namespace webrtc diff --git a/modules/audio_processing/agc2/agc2_common.h b/modules/audio_processing/agc2/agc2_common.h index 0549898e26..c238b30881 100644 --- a/modules/audio_processing/agc2/agc2_common.h +++ b/modules/audio_processing/agc2/agc2_common.h @@ -53,8 +53,9 @@ constexpr float kInitialSpeechLevelEstimateDbfs = -30.f; constexpr float kDefaultSmoothedVadProbabilityAttack = 1.f; // Saturation Protector settings. -float GetInitialSaturationMarginDb(); -float GetExtraSaturationMarginOffsetDb(); +constexpr bool kDefaultUseSaturationProtector = true; +constexpr float kDefaultInitialSaturationMarginDb = 20.f; +constexpr float kDefaultExtraSaturationMarginDb = 2.f; constexpr size_t kPeakEnveloperSuperFrameLengthMs = 400; static_assert(kFullBufferSizeMs % kPeakEnveloperSuperFrameLengthMs == 0, diff --git a/modules/audio_processing/agc2/saturation_protector_unittest.cc b/modules/audio_processing/agc2/saturation_protector_unittest.cc index ae75163911..2c5ee5b036 100644 --- a/modules/audio_processing/agc2/saturation_protector_unittest.cc +++ b/modules/audio_processing/agc2/saturation_protector_unittest.cc @@ -15,6 +15,7 @@ #include "modules/audio_processing/agc2/agc2_common.h" #include "modules/audio_processing/logging/apm_data_dumper.h" #include "rtc_base/gunit.h" +#include "test/gmock.h" namespace webrtc { namespace {