avcodec/mjpegdec: dont try to combine fields for decimated multiscope 2 material
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 21 Jun 2015 00:39:38 +0000 (02:39 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 21 Jun 2015 00:53:06 +0000 (02:53 +0200)
Fixes Ticket4535

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mjpegdec.c
libavcodec/mjpegdec.h

index 1ce3328..87c5862 100644 (file)
@@ -367,6 +367,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
 
         /* test interlaced mode */
         if (s->first_picture   &&
+            (s->multiscope != 2 || s->avctx->time_base.den >= 25 * s->avctx->time_base.num) &&
             s->org_height != 0 &&
             s->height < ((s->org_height * 3) / 4)) {
             s->interlaced                    = 1;
@@ -1830,6 +1831,8 @@ static int mjpeg_decode_com(MJpegDecodeContext *s)
             else if ((!strncmp(cbuf, "Intel(R) JPEG Library, version 1", 32) && s->avctx->codec_tag) ||
                      (!strncmp(cbuf, "Metasoft MJPEG Codec", 20)))
                 s->flipped = 1;
+            else if (!strcmp(cbuf, "MULTISCOPE II"))
+                s->multiscope = 2;
 
             av_free(cbuf);
         }
index 28d3e4a..fb81129 100644 (file)
@@ -114,6 +114,7 @@ typedef struct MJpegDecodeContext {
     int buggy_avid;
     int cs_itu601;
     int interlace_polarity;
+    int multiscope;
 
     int mjpb_skiptosod;