summaryrefslogtreecommitdiff
path: root/libavformat/mov.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2016-03-02 02:03:46 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2016-03-02 02:03:46 +0100
commit2355b7458e637a56a8eb878ee9dbe1e06dfd69b2 (patch)
tree6d8edc75efd87a9c6730d867fc41a8b1c8599d02 /libavformat/mov.c
parentc3bb6166dd05801e86a959085cdffbc3fb1ac46d (diff)
lavf/mov: Set display aspect ratio for avid dv.
Fixes ticket #5271.
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r--libavformat/mov.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 043f4a9dbc..2eddc49f9b 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -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;
+ }
}
}