Mercurial > hg > xmms-sid
changeset 331:5e82b21d1914
Minor fix to filter (mean value does not get reset on every filtered audio block)
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 22 Sep 2005 01:53:05 +0000 |
parents | e0abd282d6b7 |
children | 961212302eb9 |
files | src/xs_filter.c |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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,);