Index: ext/ffmpeg/gstffmpegcodecmap.c
===================================================================
RCS file: /cvs/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegcodecmap.c,v
retrieving revision 1.74
diff -u -r1.74 gstffmpegcodecmap.c
--- ext/ffmpeg/gstffmpegcodecmap.c	25 Jan 2005 15:17:44 -0000	1.74
+++ ext/ffmpeg/gstffmpegcodecmap.c	27 Jan 2005 22:19:35 -0000
@@ -631,10 +631,11 @@
       break;
 
     case CODEC_ID_AMR_NB:
+      caps = GST_FF_AUD_CAPS_NEW ("audio/x-amr-nb", NULL);
+      break;
+
     case CODEC_ID_AMR_WB:
-      /* what's this? ffmpeg uses external libs here that we don't include
-       * so there's no point in defining those. Still, I want to know what
-       * it actually is... */
+      caps = GST_FF_AUD_CAPS_NEW ("audio/x-amr-wb", NULL);
       break;
 
     case CODEC_ID_RA_144:
@@ -691,6 +692,7 @@
         caps = gst_caps_new_simple ("audio/x-flac", NULL);
       }
       break;
+case 1000:caps=GST_FF_AUD_CAPS_NEW("audio/x-gsm",NULL);break;
 
     default:
       g_warning ("Unknown codec ID %d, please add here", codec_id);
@@ -1710,6 +1712,12 @@
           break;
       }
     }
+  } else if (!strcmp (mimetype, "audio/x-amrnb")) {
+    audio = TRUE;
+    id = CODEC_ID_AMR_NB;
+  } else if (!strcmp (mimetype, "audio/x-amrwb")) {
+    id = CODEC_ID_AMR_WB;
+    audio = TRUE;
   } else if (!strncmp (mimetype, "audio/x-gst_ff-", 15) ||
       !strncmp (mimetype, "video/x-gst_ff-", 15)) {
     gchar ext[16];
Index: ext/ffmpeg/gstffmpegdec.c
===================================================================
RCS file: /cvs/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegdec.c,v
retrieving revision 1.86
diff -u -r1.86 gstffmpegdec.c
--- ext/ffmpeg/gstffmpegdec.c	25 Jan 2005 16:56:45 -0000	1.86
+++ ext/ffmpeg/gstffmpegdec.c	27 Jan 2005 22:19:37 -0000
@@ -881,7 +882,7 @@
     /* no quasi-codecs, please */
     if (in_plugin->id == CODEC_ID_RAWVIDEO ||
         (in_plugin->id >= CODEC_ID_PCM_S16LE &&
-            in_plugin->id <= CODEC_ID_PCM_ALAW)) {
+            in_plugin->id <= CODEC_ID_PCM_U8)) {
       goto next;
     }
 
Index: ext/ffmpeg/gstffmpegdemux.c
===================================================================
RCS file: /cvs/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegdemux.c,v
retrieving revision 1.41
diff -u -r1.41 gstffmpegdemux.c
--- ext/ffmpeg/gstffmpegdemux.c	19 Jan 2005 17:25:29 -0000	1.41
+++ ext/ffmpeg/gstffmpegdemux.c	27 Jan 2005 22:19:37 -0000
@@ -745,26 +745,8 @@
     /* This is a bit ugly, but we just take all formats
      * for the pad template. We'll get an exact match
      * when we open the stream */
-    audiosrccaps = gst_caps_new_empty ();
-    videosrccaps = gst_caps_new_empty ();
-    for (in_codec = first_avcodec; in_codec != NULL; in_codec = in_codec->next) {
-      GstCaps *temp = gst_ffmpeg_codecid_to_caps (in_codec->id, NULL, TRUE);
-
-      if (!temp) {
-        continue;
-      }
-      switch (in_codec->type) {
-        case CODEC_TYPE_VIDEO:
-          gst_caps_append (videosrccaps, temp);
-          break;
-        case CODEC_TYPE_AUDIO:
-          gst_caps_append (audiosrccaps, temp);
-          break;
-        default:
-          gst_caps_free (temp);
-          break;
-      }
-    }
+    audiosrccaps = gst_caps_new_any ();
+    videosrccaps = gst_caps_new_any ();
 
     /* construct the type */
     type_name = g_strdup_printf ("ffdemux_%s", name);
Index: gst-libs/ext/ffmpeg/libavformat/mov.c
===================================================================
RCS file: /cvs/gstreamer/mirror/ffmpeg/libavformat/mov.c,v
retrieving revision 1.3
diff -u -r1.3 mov.c
--- gst-libs/ext/ffmpeg/libavformat/mov.c	16 Dec 2004 17:44:19 -0000	1.3
+++ gst-libs/ext/ffmpeg/libavformat/mov.c	27 Jan 2005 22:19:45 -0000
@@ -142,6 +142,7 @@
     { CODEC_ID_AMR_NB, MKTAG('s', 'a', 'm', 'r') }, /* AMR-NB 3gp */
     { CODEC_ID_AMR_WB, MKTAG('s', 'a', 'w', 'b') }, /* AMR-WB 3gp */
     { CODEC_ID_AC3, MKTAG('m', 's', 0x20, 0x00) }, /* Dolby AC-3 */
+{1000,MKTAG('a','g','s','m')},
     { CODEC_ID_NONE, 0 },
 };
 
