From fee0deb61fa6e306009ad8d32967e6c66a5c3b2e Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 19 Dec 2010 19:08:30 +0000 Subject: [PATCH] Fix avfilter_draw_slice() copy code with alpha planes. Originally committed as revision 26060 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfilter.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index db254d655..362d53701 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -416,9 +416,9 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) for (i = 0; i < 4; i++) { if (link->src_buf->data[i]) { src[i] = link->src_buf-> data[i] + - (y >> (i==0 ? 0 : vsub)) * link->src_buf-> linesize[i]; + (y >> (i==1 || i==2 ? vsub : 0)) * link->src_buf-> linesize[i]; dst[i] = link->cur_buf->data[i] + - (y >> (i==0 ? 0 : vsub)) * link->cur_buf->linesize[i]; + (y >> (i==1 || i==2 ? vsub : 0)) * link->cur_buf->linesize[i]; } else src[i] = dst[i] = NULL; } @@ -429,7 +429,7 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) if (!src[i]) continue; - for (j = 0; j < h >> (i==0 ? 0 : vsub); j++) { + for (j = 0; j < h >> (i==1 || i==2 ? vsub : 0); j++) { memcpy(dst[i], src[i], planew); src[i] += link->src_buf->linesize[i]; dst[i] += link->cur_buf->linesize[i]; -- 2.11.0