# HG changeset patch # User Matti Hamalainen # Date 1127353985 0 # Node ID 5e82b21d1914c3819c806c1d7c10d93c039d2303 # Parent e0abd282d6b7dd4dabc3e459c336f9e9b2eee00e Minor fix to filter (mean value does not get reset on every filtered audio block) diff -r e0abd282d6b7 -r 5e82b21d1914 src/xs_filter.c --- a/src/xs_filter.c Thu Sep 22 01:44:00 2005 +0000 +++ b/src/xs_filter.c Thu Sep 22 01:53:05 2005 +0000 @@ -26,19 +26,23 @@ #define XS_FVAR(T, P, K) g ## K ## int ## P *sp_ ## T ## P , *dp_ ## T ## P #define XS_FILTER1(T, P, K, Q) \ - dataSize /= sizeof(g ## K ## int ## P); tmpo = 0; \ + dataSize /= sizeof(g ## K ## int ## P); \ sp_ ## T ## P = (g ## K ## int ## P *) srcBuf; \ dp_ ## T ## P = (g ## K ## int ## P *) destBuf; \ while (dataSize-- > 0) { \ for (tmp = 0, i = 0; i < oversampleFactor; i++) \ tmp += (gint32) ((gint ## P) (*(sp_ ## T ## P ++) Q)); \ - tmpo = (tmp + tmpo) / (oversampleFactor + 1); \ - *(dp_ ## T ## P ++) = ((g ## K ## int ## P) tmpo) Q ; \ + xs_filter_mbn = (tmp + xs_filter_mbn) / (oversampleFactor + 1); \ + *(dp_ ## T ## P ++) = ((g ## K ## int ## P) xs_filter_mbn) Q ; \ } + +static gint32 xs_filter_mbn = 0; + + gint xs_filter_rateconv(void *destBuf, void *srcBuf, const AFormat audioFormat, const gint oversampleFactor, const gint bufSize) { - gint32 tmp, tmpo; + static gint32 tmp; XS_FVAR(s,8,); XS_FVAR(u,8,u); XS_FVAR(s,16,);