[Speex-dev] Echo canceller problem
Andrzej Fien
fien112 at hotmail.com
Thu Jun 8 09:55:24 PDT 2006
Hello everybody.
I have the same problem like you. I use ARM microcontroller too.
Here is the list of all functions called by speex_echo_cancel until goes
into infinite loop:
speex_echo_cancel()
|
spx_fft
|
kiss_fftr
|
kiss_fft
|
kiss_fft_stride
|
kf_work
Function kf_work looks like:
static void kf_work(kiss_fft_cpx * Fout, const kiss_fft_cpx * f, const
size_t fstride, int in_stride, int * factors, const kiss_fft_cfg st)
{
kiss_fft_cpx * Fout_beg=Fout;
const int p=*factors++; // the radix
const int m=*factors++; // stage's fft length/p
const kiss_fft_cpx * Fout_end = Fout + p*m;
if(m==1)
{
do
{
*Fout = *f;
f += fstride*in_stride;
}
while(++Fout != Fout_end );
}
else
{
do
{
kf_work(Fout , f, fstride*p, in_stride, factors,st); // <----------
here this function calls itself and that's why goes infinite
f += fstride*in_stride;
}
while( (Fout += m) != Fout_end );
}
...
...
If anybody knows how to work around this problem please help.
Regards
Andre
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
More information about the Speex-dev
mailing list