# HG changeset patch # User vitor # Date 1241728864 0 # Node ID a6b1143fb528dcf260917d163d9b8c15501f812d # Parent 5d5fa4a92f164439d5f1ad5ba5b9d77bff21ef42 Fix sliced yuv410 -> yuv420 conversion diff -r 5d5fa4a92f16 -r a6b1143fb528 libswscale/swscale.c --- a/libswscale/swscale.c Thu May 07 13:16:22 2009 +0000 +++ b/libswscale/swscale.c Thu May 07 20:41:04 2009 +0000 @@ -2108,11 +2108,15 @@ } if (c->dstFormat==PIX_FMT_YUV420P || c->dstFormat==PIX_FMT_YUVA420P){ - planar2x(src[1], dst[1], c->chrSrcW, c->chrSrcH, srcStride[1], dstStride[1]); - planar2x(src[2], dst[2], c->chrSrcW, c->chrSrcH, srcStride[2], dstStride[2]); + planar2x(src[1], dst[1] + dstStride[1]*(srcSliceY >> 1), c->chrSrcW, + srcSliceH >> 2, srcStride[1], dstStride[1]); + planar2x(src[2], dst[2] + dstStride[2]*(srcSliceY >> 1), c->chrSrcW, + srcSliceH >> 2, srcStride[2], dstStride[2]); }else{ - planar2x(src[1], dst[2], c->chrSrcW, c->chrSrcH, srcStride[1], dstStride[2]); - planar2x(src[2], dst[1], c->chrSrcW, c->chrSrcH, srcStride[2], dstStride[1]); + planar2x(src[1], dst[2] + dstStride[2]*(srcSliceY >> 1), c->chrSrcW, + srcSliceH >> 2, srcStride[1], dstStride[2]); + planar2x(src[2], dst[1] + dstStride[1]*(srcSliceY >> 1), c->chrSrcW, + srcSliceH >> 2, srcStride[2], dstStride[1]); } if (dst[3]) fillPlane(dst[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255);