changeset 280:b7e2938f2837

Changed method.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 25 Dec 2004 08:53:05 +0000
parents 1481531b4ce2
children d913f0f69487
files src/xs_filter.c
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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)