ext/ffmpeg/: Add support for Monkey's Audio (APE). Fixes bug #518033.
authorSebastian Dröge <slomo@circular-chaos.org>
Sat, 19 Apr 2008 19:43:54 +0000 (19:43 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Sat, 19 Apr 2008 19:43:54 +0000 (19:43 +0000)
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_formatid_to_caps),
(gst_ffmpeg_caps_to_codecid), (gst_ffmpeg_get_codecid_longname):
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_register):
Add support for Monkey's Audio (APE). Fixes bug #518033.

ChangeLog
common
ext/ffmpeg/gstffmpegcodecmap.c
ext/ffmpeg/gstffmpegdemux.c

index dc658a2..5c99f36 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-04-19  Sebastian Dröge  <slomo@circular-chaos.org>
+
+       * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
+       (gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_formatid_to_caps),
+       (gst_ffmpeg_caps_to_codecid), (gst_ffmpeg_get_codecid_longname):
+       * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_register):
+       Add support for Monkey's Audio (APE). Fixes bug #518033.
+
 2008-04-15  Andy Wingo  <wingo@pobox.com>
 
        * ext/libpostproc/gstpostproc.c (gst_post_proc_transform_ip): Fix
diff --git a/common b/common
index f88ff85..3bb6edf 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit f88ff852da7631ad2d0be835763da6d551a63883
+Subproject commit 3bb6edfe927d6d3020d2f2a4604f54caa61cd104
index 6ac9536..9815294 100644 (file)
@@ -317,6 +317,16 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
       caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dts", NULL);
       break;
 
+    case CODEC_ID_APE:
+      caps =
+          gst_ff_aud_caps_new (context, codec_id, "audio/x-ffmpeg-parsed-ape",
+          NULL);
+      if (context) {
+        gst_caps_set_simple (caps,
+            "depth", G_TYPE_INT, context->bits_per_sample, NULL);
+      }
+      break;
+
       /* MJPEG is normal JPEG, Motion-JPEG and Quicktime MJPEG-A. MJPEGB
        * is Quicktime's MJPEG-B. LJPEG is lossless JPEG. I don't know what
        * sp5x is, but it's apparently something JPEG... We don't separate
@@ -1620,6 +1630,7 @@ gst_ffmpeg_caps_with_codecid (enum CodecID codec_id,
     case CODEC_ID_MSRLE:
     case CODEC_ID_QTRLE:
     case CODEC_ID_TSCC:
+    case CODEC_ID_APE:
     {
       gint depth;
 
@@ -1739,6 +1750,8 @@ gst_ffmpeg_formatid_to_caps (const gchar * format_name)
     caps = gst_caps_new_simple ("video/x-msvideo", NULL);
   } else if (!strcmp (format_name, "wav")) {
     caps = gst_caps_new_simple ("audio/x-wav", NULL);
+  } else if (!strcmp (format_name, "ape")) {
+    caps = gst_caps_new_simple ("application/x-ape", NULL);
   } else if (!strcmp (format_name, "swf")) {
     caps = gst_caps_new_simple ("application/x-shockwave-flash", NULL);
   } else if (!strcmp (format_name, "au")) {
@@ -2135,6 +2148,9 @@ gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context)
   } else if (!strcmp (mimetype, "audio/x-dts")) {
     id = CODEC_ID_DTS;
     audio = TRUE;
+  } else if (!strcmp (mimetype, "application/x-ape")) {
+    id = CODEC_ID_APE;
+    audio = TRUE;
   } else if (!strcmp (mimetype, "video/x-msmpeg")) {
     gint msmpegversion = 0;
 
@@ -2506,6 +2522,9 @@ gst_ffmpeg_get_codecid_longname (enum CodecID codec_id)
     case CODEC_ID_MP3:
       name = "MPEG-1 layer 3 audio";
       break;
+    case CODEC_ID_APE:
+      name = "Monkey's Audio";
+      break;
     case CODEC_ID_VORBIS:
       name = "Vorbis audio";
       break;
index 8494920..a81ac83 100644 (file)
@@ -1577,6 +1577,7 @@ gst_ffmpegdemux_register (GstPlugin * plugin)
         !strcmp (in_plugin->name, "mmf") ||
         !strcmp (in_plugin->name, "mm") ||
         !strcmp (in_plugin->name, "ipmovie") ||
+        !strcmp (in_plugin->name, "ape") ||
         !strcmp (in_plugin->name, "RoQ") ||
         !strcmp (in_plugin->name, "idcin") ||
         !strcmp (in_plugin->name, "gxf") ||