diff options
author | Vittorio Giovara <[email protected]> | 2015-03-23 19:43:27 +0000 |
---|---|---|
committer | Vittorio Giovara <[email protected]> | 2015-04-09 13:46:54 +0200 |
commit | be089af38f65dc8b1fe3564f98020fc815577edb (patch) | |
tree | aed0408ca9a51ce1f28675c66557d08975cf090e | |
parent | f8fd0c29ce5dc7d4be13e7e89d0f1e8a035ae71b (diff) |
mov: Rely on box type rather than file type for colr atom
Although it's not allowed to use only allows 'nclc' in ISOM files, there
are samples that do not always respect this rule. This change prevents
atom overread and a spurious color range initialization.
Signed-off-by: Vittorio Giovara <[email protected]>
-rw-r--r-- | libavformat/mov.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index ef58492217..72dd699a5b 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -992,7 +992,7 @@ static int mov_read_colr(MOVContext *c, AVIOContext *pb, MOVAtom atom) av_dlog(c->fc, "%s: pri %"PRIu16" trc %"PRIu16" matrix %"PRIu16"", color_parameter_type, color_primaries, color_trc, color_matrix); - if (c->isom) { + if (!strncmp(color_parameter_type, "nclx", 4)) { uint8_t color_range = avio_r8(pb) >> 7; av_dlog(c->fc, " full %"PRIu8"", color_range); if (color_range) @@ -1012,7 +1012,7 @@ static int mov_read_colr(MOVContext *c, AVIOContext *pb, MOVAtom atom) st->codec->color_primaries = color_primaries; st->codec->color_trc = color_trc; st->codec->colorspace = color_matrix; - } else { + } else if (!strncmp(color_parameter_type, "nclc", 4)) { /* color primaries, Table 4-4 */ switch (color_primaries) { case 1: st->codec->color_primaries = AVCOL_PRI_BT709; break; |