From a43db678c18317ed465f9fa89b94c440e9438ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 11 Mar 2014 11:14:21 +0100 Subject: [PATCH] atdec: Set the correct layer depending on the MP3 caps --- sys/applemedia/atdec.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sys/applemedia/atdec.c b/sys/applemedia/atdec.c index fa533a7a77..32e5ca7d47 100644 --- a/sys/applemedia/atdec.c +++ b/sys/applemedia/atdec.c @@ -222,9 +222,26 @@ gst_caps_to_at_format (GstCaps * caps, AudioStreamBasicDescription * format) if (can_intersect_static_caps (caps, &aac_caps)) { format->mFormatID = kAudioFormatMPEG4AAC; format->mFramesPerPacket = 1024; - } else if (can_intersect_static_caps (caps, &mp3_caps)) - format->mFormatID = kAudioFormatMPEGLayer3; - else if (can_intersect_static_caps (caps, &raw_caps)) { + } else if (can_intersect_static_caps (caps, &mp3_caps)) { + gint layer; + + gst_structure_get_int (structure, "layer", &layer); + switch (layer) { + case 1: + format->mFormatID = kAudioFormatMPEGLayer1; + break; + case 2: + format->mFormatID = kAudioFormatMPEGLayer2; + break; + case 3: + format->mFormatID = kAudioFormatMPEGLayer3; + break; + default: + g_warn_if_reached (); + format->mFormatID = kAudioFormatMPEGLayer3; + break; + } + } else if (can_intersect_static_caps (caps, &raw_caps)) { GstAudioFormat audio_format; const char *audio_format_str;