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, \