lavf/mov: Set display aspect ratio for avid dv.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 2 Mar 2016 01:03:46 +0000 (02:03 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 2 Mar 2016 01:03:46 +0000 (02:03 +0100)
Fixes ticket #5271.

libavformat/mov.c
libavformat/version.h

index 043f4a9..2eddc49 100644 (file)
@@ -1461,6 +1461,25 @@ static int mov_read_ares(MOVContext *c, AVIOContext *pb, MOVAtom atom)
             if (avio_rb16(pb) == 0xd4d)
                 codec->width = 1440;
             return 0;
+        } else if (codec->codec_tag == MKTAG('A', 'V', 'd', '1') &&
+                   atom.size >= 24) {
+            int num, den;
+            avio_skip(pb, 12);
+            num = avio_rb32(pb);
+            den = avio_rb32(pb);
+            if (num <= 0 || den <= 0)
+                return 0;
+            switch (avio_rb32(pb)) {
+            case 2:
+                if (den >= INT_MAX / 2)
+                    return 0;
+                den *= 2;
+            case 1:
+                c->fc->streams[c->fc->nb_streams-1]->display_aspect_ratio.num = num;
+                c->fc->streams[c->fc->nb_streams-1]->display_aspect_ratio.den = den;
+            default:
+                return 0;
+            }
         }
     }
 
index 29aca66..4849171 100644 (file)
@@ -31,7 +31,7 @@
 
 #define LIBAVFORMAT_VERSION_MAJOR  57
 #define LIBAVFORMAT_VERSION_MINOR  27
-#define LIBAVFORMAT_VERSION_MICRO 100
+#define LIBAVFORMAT_VERSION_MICRO 101
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                LIBAVFORMAT_VERSION_MINOR, \