blob: ce3e2be3351b120a2e6df6cd1dbb25549186767e [file] [log] [blame]
/*
* 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/aec3/reverb_model_estimator.h"
namespace webrtc {
ReverbModelEstimator::ReverbModelEstimator(const EchoCanceller3Config& config)
: reverb_decay_estimator_(config) {}
ReverbModelEstimator::~ReverbModelEstimator() = default;
void ReverbModelEstimator::Update(
rtc::ArrayView<const float> impulse_response,
const std::vector<std::array<float, kFftLengthBy2Plus1>>&
frequency_response,
const absl::optional<float>& linear_filter_quality,
int filter_delay_blocks,
bool usable_linear_estimate,
bool stationary_block) {
// Estimate the frequency response for the reverb.
reverb_frequency_response_.Update(frequency_response, filter_delay_blocks,
linear_filter_quality, stationary_block);
// Estimate the reverb decay,
reverb_decay_estimator_.Update(impulse_response, linear_filter_quality,
filter_delay_blocks, usable_linear_estimate,
stationary_block);
}
} // namespace webrtc