# HG changeset patch # User Matti Hamalainen # Date 1103964785 0 # Node ID b7e2938f2837cc053cfba68e077b2120ef780ad7 # Parent 1481531b4ce2be550c41fbf8eb07c15d9272cacc Changed method. diff -r 1481531b4ce2 -r b7e2938f2837 src/xs_filter.c --- a/src/xs_filter.c Sat Dec 25 08:50:04 2004 +0000 +++ b/src/xs_filter.c Sat Dec 25 08:53:05 2004 +0000 @@ -28,11 +28,11 @@ dataSize /= sizeof(g ## K ## int ## P); tmpo_ ## T = 0; \ sp_ ## T ## P = (g ## K ## int ## P *) srcBuf; \ dp_ ## T ## P = (g ## K ## int ## P *) destBuf; \ - while (dataSize-- > oversampleFactor) { \ + while (dataSize-- > 0) { \ for (tmp_ ## T = 0, i = 0; i < oversampleFactor; i++) \ - tmp_ ## T += sp_ ## T ## P [i]; \ - *(dp_ ## T ## P ++) = tmp_ ## T / (oversampleFactor); \ - sp_ ## T ## P ++; \ + tmp_ ## T += *(sp_ ## T ## P ++); \ + tmpo_ ## T = (tmp_ ## T + tmpo_ ## T ) / (oversampleFactor * 2); \ + *(dp_ ## T ## P ++) = tmpo_ ## T; \ } gint xs_rateconv_filter(void *destBuf, void *srcBuf, gint audioFormat, gint oversampleFactor, gint dataSize)