class CEchoRemover :
public CObj
{
public:
_CPP_UTIL_CLASSNAME(CEchoRemover);
_CPP_UTIL_QUERYOBJ(CObj);
static CEchoRemover * CreateObj(int ch ,int sample_rate,int framelength)
{
CEchoRemover *pObj = new CEchoRemover(ch, sample_rate, framelength);
if (pObj == NULL)
{
return NULL;
}
pObj->__Dynamic();
return pObj;
}
CEchoRemover(int ch, int sample_rate, int framelength);
CObjPtr<CObjNetIOBuffer> Process(CObjNetIOBuffer *mic, CObjNetIOBuffer *ref);
bool operator != (const CEchoRemover &_this) const;
bool operator == (const CEchoRemover &_this) const;
public:
absl::optional<webrtc::DelayEstimate> m_delay_estimate;
std::vector<std::vector<std::vector<float>>> m_micData;
std::vector<std::vector<std::vector<float>>> m_refData;
webrtc::EchoPathVariability m_echo_path_variability;
webrtc::EchoCanceller3Config m_config;
std::unique_