From 2355b7458e637a56a8eb878ee9dbe1e06dfd69b2 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Wed, 2 Mar 2016 02:03:46 +0100 Subject: [PATCH] lavf/mov: Set display aspect ratio for avid dv. Fixes ticket #5271. --- libavformat/mov.c | 19 +++++++++++++++++++ libavformat/version.h | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) 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; + } } } diff --git a/libavformat/version.h b/libavformat/version.h index 29aca6640c..4849171c76 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -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, \