mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
parse pasp atom and set sample aspect ratio,
warn if transformation matrix differs from pasp, based on a patch by Skal. Originally committed as revision 16066 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
aaf0e267ff
commit
6da5407401
@ -430,6 +430,22 @@ static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mov_read_pasp(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
{
|
||||
const int num = get_be32(pb);
|
||||
const int den = get_be32(pb);
|
||||
AVStream * const st = c->fc->streams[c->fc->nb_streams-1];
|
||||
if (den != 0) {
|
||||
if ((st->sample_aspect_ratio.den && den != st->sample_aspect_ratio.den) ||
|
||||
(st->sample_aspect_ratio.num && num != st->sample_aspect_ratio.num))
|
||||
av_log(c->fc, AV_LOG_WARNING,
|
||||
"sample aspect ratio already set, overriding by 'pasp' atom\n");
|
||||
st->sample_aspect_ratio.num = num;
|
||||
st->sample_aspect_ratio.den = den;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* this atom contains actual media data */
|
||||
static int mov_read_mdat(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
{
|
||||
@ -1754,6 +1770,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
|
||||
{ MKTAG('S','M','I',' '), mov_read_smi }, /* Sorenson extension ??? */
|
||||
{ MKTAG('a','l','a','c'), mov_read_extradata }, /* alac specific atom */
|
||||
{ MKTAG('a','v','c','C'), mov_read_glbl },
|
||||
{ MKTAG('p','a','s','p'), mov_read_pasp },
|
||||
{ MKTAG('s','t','b','l'), mov_read_default },
|
||||
{ MKTAG('s','t','c','o'), mov_read_stco },
|
||||
{ MKTAG('s','t','s','c'), mov_read_stsc },
|
||||
|
Loading…
Reference in New Issue
Block a user