[Mplayer-cvslog] CVS: main/postproc swscale.c,1.26,1.27
Michael Niedermayer
michael at mplayer.dev.hu
Tue Oct 30 21:32:04 CET 2001
- Previous message: [Mplayer-cvslog] CVS: main/libmpdemux mpeg_hdr.h,NONE,1.1 mpeg_hdr.c,NONE,1.1 Makefile,1.4,1.5
- Next message: [Mplayer-cvslog] CVS: main/libmpdemux video.c,NONE,1.1 Makefile,1.5,1.6 stheader.h,1.19,1.20
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/mplayer/main/postproc
In directory mplayer:/var/tmp.root/cvs-serv13831
Modified Files:
swscale.c
Log Message:
bugfixes
small speedup for the non x86 stuff
Index: swscale.c
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/swscale.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- swscale.c 29 Oct 2001 19:54:22 -0000 1.26
+++ swscale.c 30 Oct 2001 20:30:24 -0000 1.27
@@ -33,6 +33,7 @@
TODO
more intelligent missalignment avoidance for the horizontal scaler
+bicubic scaler
*/
#define ABS(a) ((a) > 0 ? (a) : (-(a)))
@@ -912,7 +913,6 @@
unsigned int xpos=0;
// *** horizontal scale Y line to temp buffer
#ifdef ARCH_X86
-
#ifdef HAVE_MMX2
if(canMMX2BeUsed)
{
@@ -1012,7 +1012,7 @@
for(i=0;i<dstWidth;i++){
register unsigned int xx=xpos>>16;
register unsigned int xalpha=(xpos&0xFFFF)>>9;
- dst[i]=(src[xx]*(xalpha^127)+src[xx+1]*xalpha);
+ dst[i]= (src[xx]<<7) + (src[xx+1] - src[xx])*xalpha;
xpos+=xInc;
}
#endif
@@ -1068,8 +1068,6 @@
FUNNYUVCODE
FUNNYUVCODE
FUNNYUVCODE
-
-
"xorl %%eax, %%eax \n\t" // i
"movl %6, %%esi \n\t" // src
"movl %1, %%edi \n\t" // buf1
@@ -1143,6 +1141,10 @@
register unsigned int xalpha=(xpos&0xFFFF)>>9;
dst[i]=(src1[xx]*(xalpha^127)+src1[xx+1]*xalpha);
dst[i+2048]=(src2[xx]*(xalpha^127)+src2[xx+1]*xalpha);
+/* slower
+ dst[i]= (src1[xx]<<7) + (src1[xx+1] - src1[xx])*xalpha;
+ dst[i+2048]=(src2[xx]<<7) + (src2[xx+1] - src2[xx])*xalpha;
+*/
xpos+=xInc;
}
#endif
@@ -1195,8 +1197,8 @@
if(canMMX2BeUsed) s_xinc+= 20;
else s_xinc = ((srcWidth-2)<<16)/(dstw-2) - 20;
-if(fullUVIpol && !dstbpp==12) s_xinc2= s_xinc>>1;
-else s_xinc2= s_xinc;
+if(fullUVIpol && !(dstbpp==12)) s_xinc2= s_xinc>>1;
+else s_xinc2= s_xinc;
// force calculation of the horizontal interpolation of the first line
if(y==0){
@@ -1440,7 +1442,7 @@
#ifdef HAVE_MMX
__asm __volatile(SFENCE:::"memory");
- __asm __volatile(EMMS);
+ __asm __volatile(EMMS:::"memory");
#endif
}
- Previous message: [Mplayer-cvslog] CVS: main/libmpdemux mpeg_hdr.h,NONE,1.1 mpeg_hdr.c,NONE,1.1 Makefile,1.4,1.5
- Next message: [Mplayer-cvslog] CVS: main/libmpdemux video.c,NONE,1.1 Makefile,1.5,1.6 stheader.h,1.19,1.20
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the MPlayer-cvslog
mailing list