diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-03-11 11:14:21 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-03-11 15:34:03 +0100 |
commit | d33d4aa5935f2b6a2cd76d0b86c1410524b77cc0 (patch) | |
tree | d9e09d5c27aefed9a9840eab6d0885bd581b2cec | |
parent | d342c9c64128e80833bc85f112ed02c4038b8b99 (diff) | |
download | gstreamer-plugins-bad-d33d4aa5935f2b6a2cd76d0b86c1410524b77cc0.tar.gz |
atdec: Set the correct layer depending on the MP3 caps
-rw-r--r-- | sys/applemedia/atdec.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/sys/applemedia/atdec.c b/sys/applemedia/atdec.c index fa533a7a7..32e5ca7d4 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; |