[SCM] libav/experimental: Fix avfilter_draw_slice() copy code with alpha planes.
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 17:20:39 UTC 2013
The following commit has been merged in the experimental branch:
commit fee0deb61fa6e306009ad8d32967e6c66a5c3b2e
Author: Stefano Sabatini <stefano.sabatini-lala at poste.it>
Date: Sun Dec 19 19:08:30 2010 +0000
Fix avfilter_draw_slice() copy code with alpha planes.
Originally committed as revision 26060 to svn://svn.ffmpeg.org/ffmpeg/trunk
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index db254d6..362d537 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];
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list