From ff490720135b7b3d2e7e33cce8f6bc843e4333ab Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <michaelni@gmx.at> Date: Wed, 15 Oct 2003 12:08:31 +0000 Subject: [PATCH] dither scaling coefficients so they add up to 1.0 Originally committed as revision 11124 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc --- postproc/swscale.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/postproc/swscale.c b/postproc/swscale.c index e911a6467db..d46e6167dcb 100644 --- a/postproc/swscale.c +++ b/postproc/swscale.c @@ -1084,8 +1084,10 @@ static inline void initFilter(int16_t **outFilter, int16_t **filterPos, int *out for(i=0; i<dstW; i++) { int j; + double error=0; double sum=0; double scale= one; + for(j=0; j<filterSize; j++) { sum+= filter[i*filterSize + j]; @@ -1093,7 +1095,10 @@ static inline void initFilter(int16_t **outFilter, int16_t **filterPos, int *out scale/= sum; for(j=0; j<*outFilterSize; j++) { - (*outFilter)[i*(*outFilterSize) + j]= (int)(filter[i*filterSize + j]*scale + 0.5); + double v= filter[i*filterSize + j]*scale + error; + int intV= floor(v + 0.5); + (*outFilter)[i*(*outFilterSize) + j]= intV; + error = v - intV; } } -- GitLab