Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xiph/speex.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorval058 <val058@630fbc32-c412-0410-8d9e-966872dfccd7>2006-08-18 05:22:15 +0400
committerJean-Marc Valin <Jean-Marc.Valin@csiro.au>2008-05-19 08:30:41 +0400
commit8bc9da44c54efe8570662a40668965b83b423b3d (patch)
treeafc32c4af45dc06283d36a4b61e624e160f2bf1b
parentd8944185c1f8d479417e3b2e9a2689b76729b764 (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.c6
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];
}
}