From 7a53743bfdfcb5b7a908ebe9e1c1b75cfdd35d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 24 Sep 2012 15:32:44 +0200 Subject: [PATCH] Add support for audio/mpeg-L2 for the Nexus 7 --- sys/androidmedia/gstamcaudiodec.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/sys/androidmedia/gstamcaudiodec.c b/sys/androidmedia/gstamcaudiodec.c index 57037939c5..deba949854 100644 --- a/sys/androidmedia/gstamcaudiodec.c +++ b/sys/androidmedia/gstamcaudiodec.c @@ -180,6 +180,16 @@ create_sink_caps (const GstAmcCodecInfo * codec_info) "channels", GST_TYPE_INT_RANGE, 1, G_MAXINT, "framed", G_TYPE_BOOLEAN, TRUE, NULL); gst_caps_append_structure (ret, tmp); + } else if (strcmp (type->mime, "audio/mpeg-L2") == 0) { + GstStructure *tmp; + + tmp = gst_structure_new ("audio/mpeg", + "mpegversion", G_TYPE_INT, 1, + "layer", G_TYPE_INT, 2, + "rate", GST_TYPE_INT_RANGE, 1, G_MAXINT, + "channels", GST_TYPE_INT_RANGE, 1, G_MAXINT, + "parsed", G_TYPE_BOOLEAN, TRUE, NULL); + gst_caps_append_structure (ret, tmp); } else { GST_WARNING ("Unsupported mimetype '%s'", type->mime); } @@ -206,10 +216,16 @@ caps_to_mime (GstCaps * caps) if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) return NULL; - if (mpegversion == 1) - return "audio/mpeg"; - else if (mpegversion == 2 || mpegversion == 4) + if (mpegversion == 1) { + gint layer; + + if (!gst_structure_get_int (s, "layer", &layer) || layer == 3) + return "audio/mpeg"; + else if (layer == 2) + return "audio/mpeg-L2"; + } else if (mpegversion == 2 || mpegversion == 4) { return "audio/mp4a-latm"; + } } else if (strcmp (name, "audio/AMR") == 0) { return "audio/3gpp"; } else if (strcmp (name, "audio/AMR-WB") == 0) {