? yuvpatch.txt Index: libvo/vo_yuv4mpeg.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/vo_yuv4mpeg.c,v retrieving revision 1.4 diff -c -u -r1.4 vo_yuv4mpeg.c --- libvo/vo_yuv4mpeg.c 10 Feb 2002 16:56:30 -0000 1.4 +++ libvo/vo_yuv4mpeg.c 13 Feb 2002 17:42:30 -0000 @@ -108,18 +108,19 @@ } { // copy U + V: + int imgstride = image_width >> 1; uint8_t *src1 = srcimg[1]; uint8_t *src2 = srcimg[2]; - uint8_t *dstu = image_u + image_width * (y / 2) + (x / 2); - uint8_t *dstv = image_v + image_width * (y / 2) + (x / 2); + uint8_t *dstu = image_u + imgstride * (y >> 1) + (x >> 1); + uint8_t *dstv = image_v + imgstride * (y >> 1) + (x >> 1); for (i = 0; i < h / 2; i++) { - memcpy(dstu, src1 , w / 2); - memcpy(dstv, src2, w / 2); + memcpy(dstu, src1 , w >> 1); + memcpy(dstv, src2, w >> 1); src1 += stride[1]; src2 += stride[2]; - dstu += image_width / 2; - dstv += image_width / 2; + dstu += imgstride; + dstv += imgstride; } } } @@ -154,7 +155,6 @@ rgb24toyv12(src[0], image_y, image_u, image_v, image_width, image_height, image_width, image_width / 2, image_width * 3); -// RGB2YUV(image_width, image_height, src[0], image_y, image_u, image_v, 1); } break; }