Hello Arun, > > fix some obvious bugs discovered by valgrind > > I'd actually like to purge the Adrian canceller altogether. At least > when I tried it, it was pretty ineffective. It was useful to have at > some point to validate our approach to having pluggable cancellers, but > it's probably deadcode at this point. I'd rather keep it as a reference implementation; it is based on NLMS, the baseline method for AEC > Did you have a chance to use it at all? Any reason to keep it around? the other AEC implementations aren't that great either; speex is basically unmaintained as well and has plenty of issues, webrtc is an old snapshot and it breaks (for me) with agc enabled, not sure yet why ==8785== Invalid read of size 8 ==8785== at 0x40A2F6: pa_echo_canceller_get_capture_volume (module-echo-cancel.c:1593) ==8785== by 0x418EA2F: pa_webrtc_ec_record (webrtc.cc:262) ==8785== by 0x40C890: main (module-echo-cancel.c:2223) ==8785== Address 0x28 is not stack'd, malloc'd or (recently) free'd void pa_echo_canceller_get_capture_volume(pa_echo_canceller *ec, pa_cvolume *v) { // ec->msg is NULL *v = ec->msg->userdata->thread_info.current_volume; } which leaves only the null implementation that works flawlessly :) regards, p. -- Peter Meerwald +43-664-2444418 (mobile)