diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2001-11-04 13:50:20 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2001-11-04 13:50:20 +0000 |
commit | 7d7f78b5a4f59cd17d90f75a5e2a99c0b4e864e7 (patch) | |
tree | 67d64ce1d92ef629992e236795058e75f0f0f383 /postproc/swscale.c | |
parent | 569931477e62f246e420fb4c1ee031dc6d40571e (diff) | |
download | ffmpeg-7d7f78b5a4f59cd17d90f75a5e2a99c0b4e864e7.tar.gz |
green line fix for dstw%8!=0
Originally committed as revision 2681 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
Diffstat (limited to 'postproc/swscale.c')
-rw-r--r-- | postproc/swscale.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/postproc/swscale.c b/postproc/swscale.c index 38f2e0721e..e92364fd70 100644 --- a/postproc/swscale.c +++ b/postproc/swscale.c @@ -11,6 +11,7 @@ #include "swscale.h" #include "../mmx_defs.h" #undef MOVNTQ +#undef PAVGB //#undef HAVE_MMX2 //#undef HAVE_MMX @@ -1399,10 +1400,15 @@ static int old_dstw= -1; static int old_s_xinc= -1; #endif -int srcWidth= (dstw*s_xinc + 0x8000)>>16; -int dstUVw= fullUVIpol ? dstw : dstw/2; +int srcWidth; +int dstUVw; int i; +if(((dstw + 7)&(~7)) >= dststride) dstw&= ~7; + +srcWidth= (dstw*s_xinc + 0x8000)>>16; +dstUVw= fullUVIpol ? dstw : dstw/2; + #ifdef HAVE_MMX2 canMMX2BeUsed= (s_xinc <= 0x10000 && (dstw&31)==0 && (srcWidth&15)==0) ? 1 : 0; #endif @@ -1420,6 +1426,7 @@ else s_xinc2= s_xinc; // force calculation of the horizontal interpolation of the first line if(y==0){ +// printf("dstw %d, srcw %d, mmx2 %d\n", dstw, srcWidth, canMMX2BeUsed); s_last_ypos=-99; s_last_y1pos=-99; s_srcypos= s_yinc/2 - 0x8000; @@ -1429,9 +1436,9 @@ else s_xinc2= s_xinc; for(i=dstw-2; i<dstw+20; i++) { pix_buf_uv[0][i] = pix_buf_uv[1][i] - = pix_buf_uv[0][2048+i] = pix_buf_uv[1][2048+i] = 128; + = pix_buf_uv[0][2048+i] = pix_buf_uv[1][2048+i] = 128*128; pix_buf_uv[0][i/2] = pix_buf_uv[1][i/2] - = pix_buf_uv[0][2048+i/2] = pix_buf_uv[1][2048+i/2] = 128; + = pix_buf_uv[0][2048+i/2] = pix_buf_uv[1][2048+i/2] = 128*128; pix_buf_y[0][i]= pix_buf_y[1][i]= 0; } |