From bec509db4364b9c8b00437939a4197fc12fec3e8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 9 Jul 2013 17:57:49 +0200 Subject: [PATCH] vf_interlace: better handling of odd video size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavfilter/vf_interlace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_interlace.c b/libavfilter/vf_interlace.c index ff54896be0..d65473967f 100755 --- a/libavfilter/vf_interlace.c +++ b/libavfilter/vf_interlace.c @@ -126,14 +126,14 @@ static void copy_picture_field(AVFrame *src_frame, AVFrame *dst_frame, int plane, i, j; for (plane = 0; plane < desc->nb_components; plane++) { - int lines = (plane == 1 || plane == 2) ? inlink->h >> vsub : inlink->h; + int lines = (plane == 1 || plane == 2) ? -(-inlink->h) >> vsub : inlink->h; int linesize = av_image_get_linesize(inlink->format, inlink->w, plane); uint8_t *dstp = dst_frame->data[plane]; const uint8_t *srcp = src_frame->data[plane]; av_assert0(linesize >= 0); - lines /= 2; + lines = (lines + (field_type == FIELD_UPPER)) / 2; if (field_type == FIELD_LOWER) srcp += src_frame->linesize[plane]; if (field_type == FIELD_LOWER)