Module: libav
Branch: master
Commit: bec509db4364b9c8b00437939a4197fc12fec3e8

Author:    Michael Niedermayer <[email protected]>
Committer: Martin Storsjö <[email protected]>
Date:      Tue Jul  9 17:57:49 2013 +0200

vf_interlace: better handling of odd video size

Signed-off-by: Martin Storsjö <[email protected]>

---

 libavfilter/vf_interlace.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_interlace.c b/libavfilter/vf_interlace.c
index ff54896..d654739 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)

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to