summaryrefslogtreecommitdiff
path: root/libavformat/ty.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2017-11-06 20:50:16 +0100
committerPaul B Mahol <onemda@gmail.com>2017-11-06 20:50:16 +0100
commitcdd19e2c560397a72433425b1c5f781cc157a7cf (patch)
treeb28b2e337b5fe1c4ca214e7467c4fcff3fd5e7d6 /libavformat/ty.c
parentf7c01ff24d706e2c7d645944227a5242e0f1203f (diff)
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.c13
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;
}