tta: make probing more robust
authorPaul B Mahol <onemda@gmail.com>
Tue, 28 May 2013 11:46:10 +0000 (11:46 +0000)
committerPaul B Mahol <onemda@gmail.com>
Tue, 28 May 2013 11:46:10 +0000 (11:46 +0000)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavformat/tta.c

index e6ded521ba3c34f58e8f17e46d2856ecaf54c3de..656f914a5d8b9065f6b1ee03ff7bc9c4f010a06e 100644 (file)
@@ -33,9 +33,11 @@ typedef struct {
 
 static int tta_probe(AVProbeData *p)
 {
-    const uint8_t *d = p->buf;
-
-    if (d[0] == 'T' && d[1] == 'T' && d[2] == 'A' && d[3] == '1')
+    if (AV_RL32(&p->buf[0]) == MKTAG('T', 'T', 'A', '1') &&
+        (AV_RL16(&p->buf[4]) == 1 || AV_RL16(&p->buf[4]) == 2) &&
+        AV_RL16(&p->buf[6]) > 0 &&
+        AV_RL16(&p->buf[8]) > 0 &&
+        AV_RL32(&p->buf[10]) > 0)
         return AVPROBE_SCORE_EXTENSION + 30;
     return 0;
 }