Index: gst/typefind/gsttypefindfunctions.c
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-base/gst/typefind/gsttypefindfunctions.c,v
retrieving revision 1.141
diff -u -p -u -p -r1.141 gsttypefindfunctions.c
--- gst/typefind/gsttypefindfunctions.c	23 Aug 2007 08:33:42 -0000	1.141
+++ gst/typefind/gsttypefindfunctions.c	31 Aug 2007 08:30:49 -0000
@@ -1687,12 +1687,28 @@ m4a_type_find (GstTypeFind * tf, gpointe
   guint8 *data = gst_type_find_peek (tf, 4, 8);
 
   if (data &&
-      (memcmp (data, "ftypM4A ", 8) == 0 ||
-          memcmp (data, "ftypmp42", 8) == 0)) {
+      (memcmp (data, "ftypM4A ", 8) == 0)) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, M4A_CAPS);
   }
 }
 
+/*** video/x-mp4 ***/
+
+static GstStaticCaps mp4_caps = GST_STATIC_CAPS ("video/mp4");
+
+#define MP4_CAPS (gst_static_caps_get(&mp4_caps))
+static void
+mp4_type_find (GstTypeFind * tf, gpointer unused)
+{
+  guint8 *data = gst_type_find_peek (tf, 4, 8);
+
+  if (data &&
+      (memcmp (data, "ftypisom ", 8) == 0 ||
+          memcmp (data, "ftypmp42", 8) == 0)) {
+    gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MP4_CAPS);
+  }
+}
+
 /*** application/x-3gp ***/
 
 /* The Q is there because variables can't start with a number. */
@@ -2819,6 +2835,7 @@ plugin_init (GstPlugin * plugin)
   static gchar *zip_exts[] = { "zip", NULL };
   static gchar *compress_exts[] = { "Z", NULL };
   static gchar *m4a_exts[] = { "m4a", NULL };
+  static gchar *mp4_exts[] = { "mp4", NULL };
   static gchar *q3gp_exts[] = { "3gp", NULL };
   static gchar *aac_exts[] = { "aac", NULL };
   static gchar *spc_exts[] = { "spc", NULL };
@@ -2889,6 +2906,8 @@ plugin_init (GstPlugin * plugin)
   /* ISO formats */
   TYPE_FIND_REGISTER (plugin, "audio/x-m4a", GST_RANK_PRIMARY, m4a_type_find,
       m4a_exts, M4A_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "video/mp4", GST_RANK_PRIMARY, mp4_type_find,
+      mp4_exts, MP4_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "application/x-3gp", GST_RANK_PRIMARY,
       q3gp_type_find, q3gp_exts, Q3GP_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/quicktime", GST_RANK_SECONDARY,
