matroskadec: Use string instead of char table as probe data comparison source.
authorAurelien Jacobs <aurel@gnuage.org>
Tue, 5 Aug 2008 00:42:02 +0000 (00:42 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Tue, 5 Aug 2008 00:42:02 +0000 (00:42 +0000)
Originally committed as revision 14592 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/matroskadec.c

index 9334ce2..ae2a61b 100644 (file)
@@ -855,7 +855,7 @@ matroska_probe (AVProbeData *p)
 {
     uint64_t total = 0;
     int len_mask = 0x80, size = 1, n = 1;
-    uint8_t probe_data[] = { 'm', 'a', 't', 'r', 'o', 's', 'k', 'a' };
+    char probe_data[] = "matroska";
 
     /* ebml header? */
     if (AV_RB32(p->buf) != EBML_ID_HEADER)
@@ -881,8 +881,8 @@ matroska_probe (AVProbeData *p)
      * we don't parse the whole header but simply check for the
      * availability of that array of characters inside the header.
      * Not fully fool-proof, but good enough. */
-    for (n = 4 + size; n <= 4 + size + total - sizeof(probe_data); n++)
-        if (!memcmp (&p->buf[n], probe_data, sizeof(probe_data)))
+    for (n = 4+size; n <= 4+size+total-(sizeof(probe_data)-1); n++)
+        if (!memcmp(p->buf+n, probe_data, sizeof(probe_data)-1))
             return AVPROBE_SCORE_MAX;
 
     return 0;