diff --git a/api/audio/echo_canceller3_config.h b/api/audio/echo_canceller3_config.h index cce04d4707..52fac67092 100644 --- a/api/audio/echo_canceller3_config.h +++ b/api/audio/echo_canceller3_config.h @@ -103,6 +103,7 @@ struct EchoCanceller3Config { struct RenderLevels { float active_render_limit = 100.f; float poor_excitation_render_limit = 150.f; + float poor_excitation_render_limit_ds8 = 20.f; } render_levels; struct GainUpdates { diff --git a/modules/audio_processing/aec3/echo_path_delay_estimator.cc b/modules/audio_processing/aec3/echo_path_delay_estimator.cc index 14cf8daac9..bc9cde4577 100644 --- a/modules/audio_processing/aec3/echo_path_delay_estimator.cc +++ b/modules/audio_processing/aec3/echo_path_delay_estimator.cc @@ -38,13 +38,16 @@ EchoPathDelayEstimator::EchoPathDelayEstimator( ? kBlockSize / down_sampling_factor_ : kBlockSize), capture_decimator_(down_sampling_factor_), - matched_filter_(data_dumper_, - DetectOptimization(), - sub_block_size_, - kMatchedFilterWindowSizeSubBlocks, - config.delay.num_filters, - kMatchedFilterAlignmentShiftSizeSubBlocks, - config.render_levels.poor_excitation_render_limit), + matched_filter_( + data_dumper_, + DetectOptimization(), + sub_block_size_, + kMatchedFilterWindowSizeSubBlocks, + config.delay.num_filters, + kMatchedFilterAlignmentShiftSizeSubBlocks, + GetDownSamplingFactor(config) == 8 + ? config.render_levels.poor_excitation_render_limit_ds8 + : config.render_levels.poor_excitation_render_limit), matched_filter_lag_aggregator_(data_dumper_, matched_filter_.GetMaxFilterLag()) { RTC_DCHECK(data_dumper);