summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-12-18 09:31:48 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-12-18 09:31:48 +0000
commit4ee3b353e9229eebf5599e4bea7b81a976fca8af (patch)
treefb5397f011dd9e32260212ed911def59c00eec94
parent75c76000f1d9173849f37903027f8e7c6bade284 (diff)
downloadgst-libav-4ee3b353e9229eebf5599e4bea7b81a976fca8af.tar.gz
Sorry Dave... Add mpegversion=1 to mp3 caps everywhere so that the autoplugger uses mad and not faad for mp3 decoding...RELEASE-0_7_3MOVE-TO-FDO
Original commit message from CVS: Sorry Dave... Add mpegversion=1 to mp3 caps everywhere so that the autoplugger uses mad and not faad for mp3 decoding. This should fix mp3 playback.
-rw-r--r--ext/ffmpeg/gstffmpegcodecmap.c48
1 files changed, 29 insertions, 19 deletions
diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c
index d18e18b..1bbd186 100644
--- a/ext/ffmpeg/gstffmpegcodecmap.c
+++ b/ext/ffmpeg/gstffmpegcodecmap.c
@@ -111,14 +111,16 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
case CODEC_ID_MP2:
caps = GST_FF_AUD_CAPS_NEW ("ffmpeg_mp2",
"audio/mpeg",
- "layer", GST_PROPS_INT (2)
+ "mpegversion", GST_PROPS_INT (1),
+ "layer", GST_PROPS_INT (2)
);
break;
case CODEC_ID_MP3LAME:
caps = GST_FF_AUD_CAPS_NEW ("ffmpeg_mp3",
"audio/mpeg",
- "layer", GST_PROPS_INT (3)
+ "mpegversion", GST_PROPS_INT (1),
+ "layer", GST_PROPS_INT (3)
);
break;
@@ -1261,29 +1263,37 @@ gst_ffmpeg_caps_to_codecid (GstCaps *caps,
} else if (!strcmp(mimetype, "audio/mpeg")) {
- if (gst_caps_has_property (caps, "layer")) {
- gint layer = 0;
+ if (gst_caps_has_property (caps, "mpegversion")) {
+ gint mpegversion = 0;
- gst_caps_get_int (caps, "layer", &layer);
- switch (layer) {
- case 1:
- case 2:
- id = CODEC_ID_MP2;
- break;
- case 3:
- id = CODEC_ID_MP3LAME;
+ gst_caps_get_int (caps, "mpegversion", &mpegversion);
+ switch (mpegversion) {
+ case 2: /* ffmpeg uses faad for both... */
+ case 4:
+ id = CODEC_ID_MPEG4AAC;
break;
+ case 1:
+ if (gst_caps_has_property (caps, "layer")) {
+ gint layer = 0;
+
+ gst_caps_get_int (caps, "layer", &layer);
+ switch (layer) {
+ case 1:
+ case 2:
+ id = CODEC_ID_MP2;
+ break;
+ case 3:
+ id = CODEC_ID_MP3;
+ break;
+ default:
+ /* ... */
+ break;
+ }
+ }
default:
/* ... */
break;
}
- } else if (gst_caps_has_property (caps, "mpegversion")) {
- gint mpegversion = 0;
-
- gst_caps_get_int (caps, "mpegversion", &mpegversion);
- if (mpegversion == 4) {
- id = CODEC_ID_MPEG4AAC;
- }
}
if (id != CODEC_ID_NONE) {