ext/ffmpeg/: Add support for Monkey's Audio (APE). Fixes bug #518033.

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.
This commit is contained in:
Sebastian Dröge 2008-04-19 19:43:54 +00:00
parent e89529fccc
commit b83d37033a
4 changed files with 29 additions and 1 deletions

View file

@ -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> 2008-04-15 Andy Wingo <wingo@pobox.com>
* ext/libpostproc/gstpostproc.c (gst_post_proc_transform_ip): Fix * ext/libpostproc/gstpostproc.c (gst_post_proc_transform_ip): Fix

2
common

@ -1 +1 @@
Subproject commit f88ff852da7631ad2d0be835763da6d551a63883 Subproject commit 3bb6edfe927d6d3020d2f2a4604f54caa61cd104

View 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); caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dts", NULL);
break; 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 /* 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 * 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 * 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_MSRLE:
case CODEC_ID_QTRLE: case CODEC_ID_QTRLE:
case CODEC_ID_TSCC: case CODEC_ID_TSCC:
case CODEC_ID_APE:
{ {
gint depth; gint depth;
@ -1739,6 +1750,8 @@ gst_ffmpeg_formatid_to_caps (const gchar * format_name)
caps = gst_caps_new_simple ("video/x-msvideo", NULL); caps = gst_caps_new_simple ("video/x-msvideo", NULL);
} else if (!strcmp (format_name, "wav")) { } else if (!strcmp (format_name, "wav")) {
caps = gst_caps_new_simple ("audio/x-wav", NULL); 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")) { } else if (!strcmp (format_name, "swf")) {
caps = gst_caps_new_simple ("application/x-shockwave-flash", NULL); caps = gst_caps_new_simple ("application/x-shockwave-flash", NULL);
} else if (!strcmp (format_name, "au")) { } 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")) { } else if (!strcmp (mimetype, "audio/x-dts")) {
id = CODEC_ID_DTS; id = CODEC_ID_DTS;
audio = TRUE; audio = TRUE;
} else if (!strcmp (mimetype, "application/x-ape")) {
id = CODEC_ID_APE;
audio = TRUE;
} else if (!strcmp (mimetype, "video/x-msmpeg")) { } else if (!strcmp (mimetype, "video/x-msmpeg")) {
gint msmpegversion = 0; gint msmpegversion = 0;
@ -2506,6 +2522,9 @@ gst_ffmpeg_get_codecid_longname (enum CodecID codec_id)
case CODEC_ID_MP3: case CODEC_ID_MP3:
name = "MPEG-1 layer 3 audio"; name = "MPEG-1 layer 3 audio";
break; break;
case CODEC_ID_APE:
name = "Monkey's Audio";
break;
case CODEC_ID_VORBIS: case CODEC_ID_VORBIS:
name = "Vorbis audio"; name = "Vorbis audio";
break; break;

View file

@ -1577,6 +1577,7 @@ gst_ffmpegdemux_register (GstPlugin * plugin)
!strcmp (in_plugin->name, "mmf") || !strcmp (in_plugin->name, "mmf") ||
!strcmp (in_plugin->name, "mm") || !strcmp (in_plugin->name, "mm") ||
!strcmp (in_plugin->name, "ipmovie") || !strcmp (in_plugin->name, "ipmovie") ||
!strcmp (in_plugin->name, "ape") ||
!strcmp (in_plugin->name, "RoQ") || !strcmp (in_plugin->name, "RoQ") ||
!strcmp (in_plugin->name, "idcin") || !strcmp (in_plugin->name, "idcin") ||
!strcmp (in_plugin->name, "gxf") || !strcmp (in_plugin->name, "gxf") ||