3#include "AudioTools/CoreAudio/AudioStreams.h"
4#include "AudioTools/CoreAudio/Buffers.h"
5#include "MDFEchoCancellation.h"
20template <
typename Allocator = std::allocator<u
int8_t>>
35 canceller(
getFrameSize(), filterLength, fftDriver, alloc) {}
60 size_t write(
const uint8_t* buf,
size_t len)
override {
61 return canceller.write(buf, len);
70 size_t readBytes(uint8_t* buf,
size_t len)
override {
71 size_t read = p_io->readBytes(buf, len);
72 size_t samples = read /
sizeof(echo_int16_t);
75 if (samples >= (
size_t)frame_size) {
76 canceller.capture((
const echo_int16_t*)buf, (echo_int16_t*)buf);
77 return frame_size *
sizeof(echo_int16_t);
85 canceller.setMicChannels(info.
channels);
86 canceller.setSpeakerChannels(info.
channels);
123 return p_fft->
config().length;