#include "modules/audio_processing/aec3/suppression_filter.h"
#include <algorithm>
#include <cmath>
#include <cstring>
#include <functional>
#include <iterator>
#include "modules/audio_processing/aec3/vector_math.h"
#include "rtc_base/checks.h"
#include "rtc_base/numerics/safe_minmax.h"
namespace webrtc {
namespace {
const float kSqrtHanning[kFftLength] = …;
}
SuppressionFilter::SuppressionFilter(Aec3Optimization optimization,
int sample_rate_hz,
size_t num_capture_channels)
: … { … }
SuppressionFilter::~SuppressionFilter() = default;
void SuppressionFilter::ApplyGain(
rtc::ArrayView<const FftData> comfort_noise,
rtc::ArrayView<const FftData> comfort_noise_high_band,
const std::array<float, kFftLengthBy2Plus1>& suppression_gain,
float high_bands_gain,
rtc::ArrayView<const FftData> E_lowest_band,
Block* e) { … }
}