diff --git a/postproc/swscale.c b/postproc/swscale.c index 8582c8fc34..4d92bfda0d 100644 --- a/postproc/swscale.c +++ b/postproc/swscale.c @@ -108,6 +108,14 @@ s_xinc*= 256; s_xinc2=s_xinc>>1; canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; +#ifdef HAVE_MMX2 + if(canMMX2BeUsed) + { + s_xinc+= s_xinc_diff; + s_xinc2+= s_xinc2_diff; + } +#endif + if(y==0){ s_srcypos= s_yinc/2 - 0x8000; s_ypos=0; @@ -190,6 +198,9 @@ canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; s_xinc2+= s_xinc2_diff; s_xinc+= s_xinc_diff; + + old_s_xinc= s_xinc; + for(i=0; i>16; @@ -236,18 +247,12 @@ canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; xpos+=s_xinc2; } // funnyCode[0]= RET; - - } - if(canMMX2BeUsed) - { - s_xinc+= s_xinc_diff; - s_xinc2+= s_xinc2_diff; - } #endif // HAVE_MMX2 } // reset counters + while(1){ unsigned char *dest=dstptr+dststride*s_ypos; int y0=(s_srcypos + 0xFFFF)>>16; // first luminance source line number below the dst line diff --git a/postproc/swscale_template.c b/postproc/swscale_template.c index 8582c8fc34..4d92bfda0d 100644 --- a/postproc/swscale_template.c +++ b/postproc/swscale_template.c @@ -108,6 +108,14 @@ s_xinc*= 256; s_xinc2=s_xinc>>1; canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; +#ifdef HAVE_MMX2 + if(canMMX2BeUsed) + { + s_xinc+= s_xinc_diff; + s_xinc2+= s_xinc2_diff; + } +#endif + if(y==0){ s_srcypos= s_yinc/2 - 0x8000; s_ypos=0; @@ -190,6 +198,9 @@ canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; s_xinc2+= s_xinc2_diff; s_xinc+= s_xinc_diff; + + old_s_xinc= s_xinc; + for(i=0; i>16; @@ -236,18 +247,12 @@ canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0) ? 1 : 0; xpos+=s_xinc2; } // funnyCode[0]= RET; - - } - if(canMMX2BeUsed) - { - s_xinc+= s_xinc_diff; - s_xinc2+= s_xinc2_diff; - } #endif // HAVE_MMX2 } // reset counters + while(1){ unsigned char *dest=dstptr+dststride*s_ypos; int y0=(s_srcypos + 0xFFFF)>>16; // first luminance source line number below the dst line