[pulseaudio-discuss] Cleanup of Adrian AEC implementation
Peter Meerwald
pmeerw at pmeerw.net
Fri Feb 8 07:41:52 PST 2013
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)
More information about the pulseaudio-discuss
mailing list