#include "modules/audio_processing/aec3/matched_filter_lag_aggregator.h"
#include <algorithm>
#include <iterator>
#include "modules/audio_processing/logging/apm_data_dumper.h"
#include "rtc_base/checks.h"
#include "rtc_base/numerics/safe_minmax.h"
namespace webrtc {
namespace {
constexpr int kPreEchoHistogramDataNotUpdated = …;
int GetDownSamplingBlockSizeLog2(int down_sampling_factor) { … }
}
MatchedFilterLagAggregator::MatchedFilterLagAggregator(
ApmDataDumper* data_dumper,
size_t max_filter_lag,
const EchoCanceller3Config::Delay& delay_config)
: … { … }
MatchedFilterLagAggregator::~MatchedFilterLagAggregator() = default;
void MatchedFilterLagAggregator::Reset(bool hard_reset) { … }
absl::optional<DelayEstimate> MatchedFilterLagAggregator::Aggregate(
const absl::optional<const MatchedFilter::LagEstimate>& lag_estimate) { … }
MatchedFilterLagAggregator::HighestPeakAggregator::HighestPeakAggregator(
size_t max_filter_lag)
: … { … }
void MatchedFilterLagAggregator::HighestPeakAggregator::Reset() { … }
void MatchedFilterLagAggregator::HighestPeakAggregator::Aggregate(int lag) { … }
MatchedFilterLagAggregator::PreEchoLagAggregator::PreEchoLagAggregator(
size_t max_filter_lag,
size_t down_sampling_factor)
: … { … }
void MatchedFilterLagAggregator::PreEchoLagAggregator::Reset() { … }
void MatchedFilterLagAggregator::PreEchoLagAggregator::Aggregate(
int pre_echo_lag) { … }
void MatchedFilterLagAggregator::PreEchoLagAggregator::Dump(
ApmDataDumper* const data_dumper) { … }
}