avformat/ty: try harder to find stream signature
authorPaul B Mahol <onemda@gmail.com>
Mon, 6 Nov 2017 19:50:16 +0000 (20:50 +0100)
committerPaul B Mahol <onemda@gmail.com>
Mon, 6 Nov 2017 19:50:16 +0000 (20:50 +0100)
Search all chunks, not just first one.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavformat/ty.c

index bd871cb..3926d3e 100644 (file)
@@ -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;
 }