diff options
author | Paul B Mahol <onemda@gmail.com> | 2017-11-06 20:50:16 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2017-11-06 20:50:16 +0100 |
commit | cdd19e2c560397a72433425b1c5f781cc157a7cf (patch) | |
tree | b28b2e337b5fe1c4ca214e7467c4fcff3fd5e7d6 /libavformat/ty.c | |
parent | f7c01ff24d706e2c7d645944227a5242e0f1203f (diff) | |
download | ffmpeg-cdd19e2c560397a72433425b1c5f781cc157a7cf.tar.gz |
avformat/ty: try harder to find stream signature
Search all chunks, not just first one.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavformat/ty.c')
-rw-r--r-- | libavformat/ty.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libavformat/ty.c b/libavformat/ty.c index bd871cba2e..3926d3e9b7 100644 --- a/libavformat/ty.c +++ b/libavformat/ty.c @@ -108,11 +108,16 @@ typedef struct TYDemuxContext { static int ty_probe(AVProbeData *p) { - if (AV_RB32(p->buf) == TIVO_PES_FILEID && - AV_RB32(p->buf + 4) == 0x02 && - AV_RB32(p->buf + 8) == CHUNK_SIZE) { - return AVPROBE_SCORE_MAX; + int i; + + for (i = 0; i + 12 < p->buf_size; i += CHUNK_SIZE) { + if (AV_RB32(p->buf + i) == TIVO_PES_FILEID && + AV_RB32(p->buf + i + 4) == 0x02 && + AV_RB32(p->buf + i + 8) == CHUNK_SIZE) { + return AVPROBE_SCORE_MAX; + } } + return 0; } |