|
|
@@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|