diff options
author | val058 <val058@630fbc32-c412-0410-8d9e-966872dfccd7> | 2006-08-18 05:22:15 +0400 |
---|---|---|
committer | Jean-Marc Valin <Jean-Marc.Valin@csiro.au> | 2008-05-19 08:30:41 +0400 |
commit | 8bc9da44c54efe8570662a40668965b83b423b3d (patch) | |
tree | afc32c4af45dc06283d36a4b61e624e160f2bf1b | |
parent | d8944185c1f8d479417e3b2e9a2689b76729b764 (diff) |
seems to at least be working for single channel
git-svn-id: svn://lasagne.centie.net.au/trunk/audio/aec@183 630fbc32-c412-0410-8d9e-966872dfccd7
-rw-r--r-- | libspeex/mdf.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libspeex/mdf.c b/libspeex/mdf.c index 9d5b413..cf9354a 100644 --- a/libspeex/mdf.c +++ b/libspeex/mdf.c @@ -486,7 +486,7 @@ void mc_echo_cancel(SpeexEchoState *st, const spx_int16_t *ref, const spx_int16_ M = st->M; C = st->C; K = st->K; - spx_word32_t Syy,See,Sxx; + spx_word32_t Syy=0,See=0,Sxx=0; st->cancel_count++; #ifdef FIXED_POINT @@ -531,7 +531,7 @@ void mc_echo_cancel(SpeexEchoState *st, const spx_int16_t *ref, const spx_int16_ { spx_word16_t tmp; spx_word32_t tmp32; - st->x[speak+N+i] = st->x[speak+N+i+st->frame_size]; + st->x[speak*N+i] = st->x[speak*N+i+st->frame_size]; tmp32 = SUB32(EXTEND32(echo[i]), EXTEND32(MULT16_16_P15(st->preemph, st->memX[speak]))); #ifdef FIXED_POINT /*FIXME: If saturation occurs here, we need to freeze adaptation for M frames (not just one) */ @@ -546,7 +546,7 @@ void mc_echo_cancel(SpeexEchoState *st, const spx_int16_t *ref, const spx_int16_ st->saturated = 1; } #endif - st->x[speak+N+i+st->frame_size] = EXTRACT16(tmp32); + st->x[speak*N+i+st->frame_size] = EXTRACT16(tmp32); st->memX[speak] = echo[i]; } } |