|
|
|
@ -1396,6 +1396,8 @@ static int mov_skip_multiple_stsd(MOVContext *c, AVIOContext *pb, |
|
|
|
|
|
|
|
|
|
if (codec_tag && |
|
|
|
|
(codec_tag == AV_RL32("avc1") || |
|
|
|
|
codec_tag == AV_RL32("hvc1") || |
|
|
|
|
codec_tag == AV_RL32("hev1") || |
|
|
|
|
(codec_tag != format && |
|
|
|
|
(c->fc->video_codec_id ? video_codec_id != c->fc->video_codec_id |
|
|
|
|
: codec_tag != MKTAG('j','p','e','g'))))) { |
|
|
|
@ -1471,7 +1473,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries) |
|
|
|
|
if (ret < 0) |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
/* this will read extra atoms at the end (wave, alac, damr, avcC, SMI ...) */ |
|
|
|
|
/* this will read extra atoms at the end (wave, alac, damr, avcC, hvcC, SMI ...) */ |
|
|
|
|
a.size = size - (avio_tell(pb) - start_pos); |
|
|
|
|
if (a.size > 8) { |
|
|
|
|
if ((ret = mov_read_default(c, pb, a)) < 0) |
|
|
|
@ -2604,6 +2606,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { |
|
|
|
|
{ MKTAG('c','h','a','n'), mov_read_chan }, /* channel layout */ |
|
|
|
|
{ MKTAG('d','v','c','1'), mov_read_dvc1 }, |
|
|
|
|
{ MKTAG('s','b','g','p'), mov_read_sbgp }, |
|
|
|
|
{ MKTAG('h','v','c','C'), mov_read_glbl }, |
|
|
|
|
{ 0, NULL } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|