+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
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
case CODEC_ID_MSRLE:
case CODEC_ID_QTRLE:
case CODEC_ID_TSCC:
+ case CODEC_ID_APE:
{
gint depth;
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")) {
} 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;
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;
!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") ||