diff --git a/modules/audio_processing/agc2/agc2_testing_common.h b/modules/audio_processing/agc2/agc2_testing_common.h index 4572d9cffd..afed97e83b 100644 --- a/modules/audio_processing/agc2/agc2_testing_common.h +++ b/modules/audio_processing/agc2/agc2_testing_common.h @@ -25,7 +25,7 @@ constexpr float kMaxS16 = static_cast(std::numeric_limits::max()); // Level Estimator test parameters. -constexpr float kDecayMs = 500.f; +constexpr float kDecayMs = 20.0f; // Limiter parameters. constexpr float kLimiterMaxInputLevelDbFs = 1.f; diff --git a/modules/audio_processing/agc2/fixed_digital_level_estimator.cc b/modules/audio_processing/agc2/fixed_digital_level_estimator.cc index 8223a7395f..1995b24913 100644 --- a/modules/audio_processing/agc2/fixed_digital_level_estimator.cc +++ b/modules/audio_processing/agc2/fixed_digital_level_estimator.cc @@ -20,15 +20,16 @@ namespace webrtc { namespace { -constexpr float kInitialFilterStateLevel = 0.f; +constexpr float kInitialFilterStateLevel = 0.0f; // Instant attack. -constexpr float kAttackFilterConstant = 0.f; -// This is computed from kDecayMs by -// 10 ** (-1/20 * subframe_duration / kDecayMs). -// `subframe_duration` is |kFrameDurationMs / kSubFramesInFrame|. -// kDecayMs is defined in agc2_testing_common.h -constexpr float kDecayFilterConstant = 0.9998848773724686f; +constexpr float kAttackFilterConstant = 0.0f; + +// Limiter decay constant. +// Computed as `10 ** (-1/20 * subframe_duration / kDecayMs)` where: +// - `subframe_duration` is `kFrameDurationMs / kSubFramesInFrame`; +// - `kDecayMs` is defined in agc2_testing_common.h. +constexpr float kDecayFilterConstant = 0.9971259f; } // namespace