diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2009-12-06 17:40:41 +0000 |
---|---|---|
committer | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2009-12-06 17:40:41 +0000 |
commit | bf972d5e1c6ba7d501e8a60994c2e4e47b41426d (patch) | |
tree | cf9af1e310977de5a9436010035487c059f422c4 /libavfilter/vf_slicify.c | |
parent | 35c504b6fed9043f100bd2480adef7dd5f370971 (diff) | |
download | ffmpeg-bf972d5e1c6ba7d501e8a60994c2e4e47b41426d.tar.gz |
Fix slicify when the slice_direction is negative, make it send slices
from the bottom to the top one.
Originally committed as revision 20754 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavfilter/vf_slicify.c')
-rw-r--r-- | libavfilter/vf_slicify.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavfilter/vf_slicify.c b/libavfilter/vf_slicify.c index 3aae1c334e..336f223a7c 100644 --- a/libavfilter/vf_slicify.c +++ b/libavfilter/vf_slicify.c @@ -78,11 +78,19 @@ static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir) SliceContext *slice = link->dst->priv; int y2; + if (slice_dir == 1) { for (y2 = y; y2 + slice->h <= y + h; y2 += slice->h) avfilter_draw_slice(link->dst->outputs[0], y2, slice->h, slice_dir); if (y2 < y + h) avfilter_draw_slice(link->dst->outputs[0], y2, y + h - y2, slice_dir); + } else if (slice_dir == -1) { + for (y2 = y + h; y2 - slice->h >= y; y2 -= slice->h) + avfilter_draw_slice(link->dst->outputs[0], y2 - slice->h, slice->h, slice_dir); + + if (y2 > y) + avfilter_draw_slice(link->dst->outputs[0], y, y2 - y, slice_dir); + } } AVFilter avfilter_vf_slicify = { |