| Index: webrtc/modules/audio_processing/aec3/aec_state.cc
|
| diff --git a/webrtc/modules/audio_processing/aec3/aec_state.cc b/webrtc/modules/audio_processing/aec3/aec_state.cc
|
| index cc344abca0bdc953e2d7768136b30378976f2c3e..6908270995a84c3ec36a117eff4916b91fb7c470 100644
|
| --- a/webrtc/modules/audio_processing/aec3/aec_state.cc
|
| +++ b/webrtc/modules/audio_processing/aec3/aec_state.cc
|
| @@ -75,11 +75,15 @@ constexpr int kEchoPathChangeCounterMax = 2 * kNumBlocksPerSecond;
|
|
|
| int AecState::instance_count_ = 0;
|
|
|
| -AecState::AecState(float reverb_decay)
|
| +AecState::AecState(const AudioProcessing::Config::EchoCanceller3& config)
|
| : data_dumper_(
|
| new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
|
| + erle_estimator_(config.param.erle.min,
|
| + config.param.erle.max_l,
|
| + config.param.erle.max_h),
|
| echo_path_change_counter_(kEchoPathChangeCounterInitial),
|
| - reverb_decay_(reverb_decay) {}
|
| + config_(config),
|
| + reverb_decay_(config_.param.ep_strength.default_len) {}
|
|
|
| AecState::~AecState() = default;
|
|
|
| @@ -252,7 +256,8 @@ void AecState::UpdateReverb(
|
|
|
| // Limit the estimated reverb_decay_ to the maximum one needed in practice
|
| // to minimize the impact of incorrect estimates.
|
| - reverb_decay_ = std::min(0.8f, reverb_decay_);
|
| + reverb_decay_ =
|
| + std::min(config_.param.ep_strength.default_len, reverb_decay_);
|
| }
|
| reverb_decay_to_test_ = 0.9f;
|
| reverb_decay_candidate_residual_ = -1.f;
|
| @@ -260,7 +265,7 @@ void AecState::UpdateReverb(
|
|
|
| // For noisy impulse responses, assume a fixed tail length.
|
| if (tail_power > 0.0005f) {
|
| - reverb_decay_ = 0.7f;
|
| + reverb_decay_ = config_.param.ep_strength.default_len;
|
| }
|
| data_dumper_->DumpRaw("aec3_reverb_decay", reverb_decay_);
|
| data_dumper_->DumpRaw("aec3_tail_power", tail_power);
|
|
|