mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-23 15:53:08 +00:00
Improve MPEG-PS-in-MOV detection.
Fixes issue 1520.
This commit is contained in:
parent
747a00b688
commit
fa190b3cd7
@ -2908,15 +2908,14 @@ static int mov_probe(AVProbeData *p)
|
||||
* MOV-packed MPEG-PS */
|
||||
offset = moov_offset;
|
||||
|
||||
while(offset < (p->buf_size - 20)){ /* Sufficient space */
|
||||
/* We found an actual stsd atom */
|
||||
if(AV_RL32(p->buf+offset) == MKTAG('s','t','s','d') &&
|
||||
/* Make sure there's only one stream */
|
||||
AV_RB32(p->buf + offset + 8) == 1 &&
|
||||
AV_RL32(p->buf + offset + 16) == MKTAG('m','1','s',' ')
|
||||
){
|
||||
av_log(NULL, AV_LOG_WARNING, "Found m1s tag indicating this is a MOV-packed MPEG-PS.\n");
|
||||
/* We found an stsd atom describing an MPEG-PS-in-MOV, return a
|
||||
while(offset < (p->buf_size - 16)){ /* Sufficient space */
|
||||
/* We found an actual hdlr atom */
|
||||
if(AV_RL32(p->buf + offset ) == MKTAG('h','d','l','r') &&
|
||||
AV_RL32(p->buf + offset + 8) == MKTAG('m','h','l','r') &&
|
||||
AV_RL32(p->buf + offset + 12) == MKTAG('M','P','E','G')){
|
||||
av_log(NULL, AV_LOG_WARNING, "Found media data tag MPEG indicating this is a MOV-packed MPEG-PS.\n");
|
||||
/* We found a media handler reference atom describing an
|
||||
* MPEG-PS-in-MOV, return a
|
||||
* low score to force expanding the probe window until
|
||||
* mpegps_probe finds what it needs */
|
||||
return 5;
|
||||
|
Loading…
Reference in New Issue
Block a user