typefind: Handle stm module format
authorKaj-Michael Lang <milang@tal.org>
Mon, 8 Feb 2010 11:54:57 +0000 (13:54 +0200)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Mon, 15 Feb 2010 12:50:45 +0000 (12:50 +0000)
Fixes #609314.

gst/typefind/gsttypefindfunctions.c

index 8a7e660..a15eb17 100644 (file)
@@ -2475,6 +2475,21 @@ mod_type_find (GstTypeFind * tf, gpointer unused)
       return;
     }
   }
+  /* STM */
+  if ((data = gst_type_find_peek (tf, 20, 8)) != NULL) {
+    if (strncasecmp ((gchar *) data, "!Scream!", 8) == 0 ||
+        strncasecmp ((gchar *) data, "BMOD2STM", 8) == 0) {
+      guint8 *id, *stmtype;
+
+      if ((id = gst_type_find_peek (tf, 28, 1)) == NULL)
+        return;
+      if ((stmtype = gst_type_find_peek (tf, 29, 1)) == NULL)
+        return;
+      if (*id == 0x1A && *stmtype == 2)
+        gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
+      return;
+    }
+  }
 }
 
 /*** application/x-shockwave-flash ***/