#include "modules/audio_processing/residual_echo_detector.h"
#include <algorithm>
#include <numeric>
#include "absl/types/optional.h"
#include "modules/audio_processing/logging/apm_data_dumper.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "system_wrappers/include/metrics.h"
namespace {
float Power(rtc::ArrayView<const float> input) { … }
constexpr size_t kLookbackFrames = …;
constexpr size_t kRenderBufferSize = …;
constexpr float kAlpha = …;
constexpr size_t kAggregationBufferSize = …;
}
namespace webrtc {
std::atomic<int> ResidualEchoDetector::instance_count_(0);
ResidualEchoDetector::ResidualEchoDetector()
: … { … }
ResidualEchoDetector::~ResidualEchoDetector() = default;
void ResidualEchoDetector::AnalyzeRenderAudio(
rtc::ArrayView<const float> render_audio) { … }
void ResidualEchoDetector::AnalyzeCaptureAudio(
rtc::ArrayView<const float> capture_audio) { … }
void ResidualEchoDetector::Initialize(int ,
int ,
int ,
int ) { … }
EchoDetector::Metrics ResidualEchoDetector::GetMetrics() const { … }
}