do not write f2 if not interlaced
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 2 Feb 2009 03:49:23 +0000 (03:49 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 2 Feb 2009 03:49:23 +0000 (03:49 +0000)
Originally committed as revision 16929 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mxfenc.c

index 13b125a..4b53488 100644 (file)
@@ -620,9 +620,6 @@ static void mxf_write_mpegvideo_desc(AVFormatContext *s, AVStream *st)
     put_byte(pb, sc->interlaced);
 
     // video line map
-    mxf_write_local_tag(pb, 16, 0x320D);
-    put_be32(pb, 2);
-    put_be32(pb, 4);
     switch (st->codec->height) {
     case  576: f1 = 23; f2 = 336; break;
     case  608: f1 =  7; f2 = 320; break;
@@ -638,8 +635,12 @@ static void mxf_write_mpegvideo_desc(AVFormatContext *s, AVStream *st)
         f1 *= 2;
     }
 
+    mxf_write_local_tag(pb, 16, 0x320D);
+    put_be32(pb, sc->interlaced ? 2 : 1);
+    put_be32(pb, 4);
     put_be32(pb, f1);
-    put_be32(pb, f2);
+    if (sc->interlaced)
+        put_be32(pb, f2);
 
     av_reduce(&dar.num, &dar.den,
               st->codec->width*st->codec->sample_aspect_ratio.num,