changeset 4492:8303419cc60f

filterPos bugfix (only nearest neighbor scaling was affected)
author michael
date Sun, 03 Feb 2002 02:08:05 +0000
parents 317df369e7e7
children be41ab8c8918
files postproc/swscale.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/postproc/swscale.c	Sun Feb 03 01:42:02 2002 +0000
+++ b/postproc/swscale.c	Sun Feb 03 02:08:05 2002 +0000
@@ -689,7 +689,7 @@
 		xDstInSrc= xInc/2 - 0x8000;
 		for(i=0; i<dstW; i++)
 		{
-			int xx= (xDstInSrc>>16) - (filterSize>>1) + 1;
+			int xx= (xDstInSrc - ((filterSize-1)<<15) + (1<<15))>>16;
 
 			(*filterPos)[i]= xx;
 			filter[i]= 1.0;
@@ -709,7 +709,7 @@
 		xDstInSrc= xInc/2 - 0x8000;
 		for(i=0; i<dstW; i++)
 		{
-			int xx= (xDstInSrc>>16) - (filterSize>>1) + 1;
+			int xx= (xDstInSrc - ((filterSize-1)<<15) + (1<<15))>>16;
 			int j;
 
 			(*filterPos)[i]= xx;
@@ -1125,7 +1125,8 @@
 	/* avoid dupplicate Formats, so we dont need to check to much */
 	if(srcFormat==IMGFMT_IYUV) srcFormat=IMGFMT_I420;
 	if(srcFormat==IMGFMT_Y8)   srcFormat=IMGFMT_Y800;
-	
+	if(dstFormat==IMGFMT_Y8)   dstFormat=IMGFMT_Y800;
+
 	if(!isSupportedIn(srcFormat)) return NULL;
 	if(!isSupportedOut(dstFormat)) return NULL;