[Mplayer-cvslog] CVS: main/postproc swscale.c,1.99,1.100 swscale.h,1.20,1.21

Michael Niedermayer michael at mplayerhq.hu
Thu Jun 27 21:17:27 CEST 2002


Update of /cvsroot/mplayer/main/postproc
In directory mail:/var/tmp.root/cvs-serv19082

Modified Files:
	swscale.c swscale.h 
Log Message:

-sws 6 (luma bicubic & chroma bilinear)


Index: swscale.c
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/swscale.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- swscale.c	27 Jun 2002 18:00:47 -0000	1.99
+++ swscale.c	27 Jun 2002 19:17:25 -0000	1.100
@@ -257,6 +257,8 @@
 IMGFMT_BGR16,
 IMGFMT_BGR24,
 IMGFMT_BGR32,
+IMGFMT_RGB24,
+IMGFMT_RGB32,
 //IMGFMT_Y8,
 IMGFMT_Y800,
 //IMGFMT_YUY2,
@@ -940,6 +942,7 @@
 		case 3: *flags|= SWS_X; break;
 		case 4: *flags|= SWS_POINT; break;
 		case 5: *flags|= SWS_AREA; break;
+		case 6: *flags|= SWS_BICUBLIN; break;
 		default:*flags|= SWS_BILINEAR; break;
 	}
 	
@@ -2251,10 +2254,12 @@
 		const int filterAlign= cpuCaps.hasMMX ? 4 : 1;
 
 		initFilter(&c->hLumFilter, &c->hLumFilterPos, &c->hLumFilterSize, c->lumXInc,
-				 srcW      ,       dstW, filterAlign, 1<<14, flags,
+				 srcW      ,       dstW, filterAlign, 1<<14,
+				 (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC)  : flags,
 				 srcFilter->lumH, dstFilter->lumH);
 		initFilter(&c->hChrFilter, &c->hChrFilterPos, &c->hChrFilterSize, c->chrXInc,
-				 c->chrSrcW, c->chrDstW, filterAlign, 1<<14, flags,
+				 c->chrSrcW, c->chrDstW, filterAlign, 1<<14,
+				 (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags,
 				 srcFilter->chrH, dstFilter->chrH);
 
 #ifdef ARCH_X86
@@ -2276,11 +2281,13 @@
 
 	/* precalculate vertical scaler filter coefficients */
 	initFilter(&c->vLumFilter, &c->vLumFilterPos, &c->vLumFilterSize, c->lumYInc,
-			srcH      ,        dstH, 1, (1<<12)-4, flags,
+			srcH      ,        dstH, 1, (1<<12)-4,
+			(flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC)  : flags,
 			srcFilter->lumV, dstFilter->lumV);
 	initFilter(&c->vChrFilter, &c->vChrFilterPos, &c->vChrFilterSize, c->chrYInc,
-			c->chrSrcH, c->chrDstH, 1, (1<<12)-4, flags,
-			 srcFilter->chrV, dstFilter->chrV);
+			c->chrSrcH, c->chrDstH, 1, (1<<12)-4,
+			(flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags,
+			srcFilter->chrV, dstFilter->chrV);
 
 	// Calculate Buffer Sizes so that they wont run out while handling these damn slices
 	c->vLumBufSize= c->vLumFilterSize;
@@ -2344,6 +2351,8 @@
 			MSG_INFO("\nSwScaler: Nearest Neighbor / POINT scaler, ");
 		else if(flags&SWS_AREA)
 			MSG_INFO("\nSwScaler: Area Averageing scaler, ");
+		else if(flags&SWS_BICUBLIN)
+			MSG_INFO("\nSwScaler: luma BICUBIC / chroma BILINEAR, ");
 		else
 			MSG_INFO("\nSwScaler: ehh flags invalid?! ");
 

Index: swscale.h
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/swscale.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- swscale.h	27 Jun 2002 18:00:47 -0000	1.20
+++ swscale.h	27 Jun 2002 19:17:25 -0000	1.21
@@ -23,6 +23,7 @@
 #define SWS_X        8
 #define SWS_POINT    0x10
 #define SWS_AREA     0x20
+#define SWS_BICUBLIN 0x40
 
 #define SWS_SRC_V_CHR_DROP_MASK		0x300
 #define SWS_SRC_V_CHR_DROP_SHIFT	8




More information about the MPlayer-cvslog mailing list