diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-10-19 01:26:36 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-10-19 01:26:36 +0000 |
commit | 76f00f9a17bdb6abc6c5de784141ec787e0ae1eb (patch) | |
tree | 8babfd428821cb8859052debd3808c154f364c63 /postproc | |
parent | 60d5dc4ed3cbc3ac1440231422389ab8be7f0c5d (diff) |
vertical lines bugfix
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2271 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc')
-rw-r--r-- | postproc/swscale.c | 19 | ||||
-rw-r--r-- | postproc/swscale_template.c | 19 |
2 files changed, 24 insertions, 14 deletions
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<dstw/8; i++) { int xx=xpos>>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<dstw/8; i++) { int xx=xpos>>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 |