changeset 21154:1ac5087585f6

Fix incorrect stride used in vf_ass.
author eugeni
date Wed, 22 Nov 2006 17:00:03 +0000
parents 13b80aa9ca91
children e0a600f0bcaf
files libmpcodecs/vf_ass.c
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vf_ass.c	Wed Nov 22 16:42:04 2006 +0000
+++ b/libmpcodecs/vf_ass.c	Wed Nov 22 17:00:03 2006 +0000
@@ -218,7 +218,7 @@
 	chroma_rows = (last_row - first_row) / 2;
 
 	for (pl = 1; pl < 3; ++pl) {
-		int dst_stride = vf->dmpi->stride[pl] * 2;
+		int dst_stride = vf->priv->outw;
 		int src_stride = vf->dmpi->stride[pl];
 		
 		unsigned char* src = vf->dmpi->planes[pl] + (first_row/2) * src_stride;
@@ -254,7 +254,7 @@
 	int i, j, k;
 	for (pl = 1; pl < 3; ++pl) {
 		int dst_stride = vf->dmpi->stride[pl];
-		int src_stride = vf->dmpi->stride[pl] * 2;
+		int src_stride = vf->priv->outw;
 		
 		unsigned char* dst = vf->dmpi->planes[pl];
 		unsigned char* src = vf->priv->planes[pl];
@@ -291,8 +291,8 @@
 
 	src = bitmap;
 	dsty = dmpi->planes[0] + dst_x + dst_y * dmpi->stride[0];
-	dstu = vf->priv->planes[1] + dst_x + dst_y * 2 * dmpi->chroma_width;
-	dstv = vf->priv->planes[2] + dst_x + dst_y * 2 * dmpi->chroma_width;
+	dstu = vf->priv->planes[1] + dst_x + dst_y * vf->priv->outw;
+	dstv = vf->priv->planes[2] + dst_x + dst_y * vf->priv->outw;
 	for (i = 0; i < bitmap_h; ++i) {
 		for (j = 0; j < bitmap_w; ++j) {
 			unsigned k = ((unsigned)src[j]) * opacity / 255;
@@ -302,8 +302,8 @@
 		}
 		src += stride;
 		dsty += dmpi->stride[0];
-		dstu += 2 * dmpi->chroma_width;
-		dstv += 2 * dmpi->chroma_width;
+		dstu += vf->priv->outw;
+		dstv += vf->priv->outw;
 	} 
 }