summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-03-11 11:14:21 +0100
committerSebastian Dröge <sebastian@centricular.com>2014-03-11 15:33:25 +0100
commita43db678c18317ed465f9fa89b94c440e9438ae5 (patch)
treee5b2200dfd597e6da43940247113010ea02b2f9e /sys
parent5727c6174d12a2dc1259d1832362e7132ba1c0a4 (diff)
downloadgstreamer-plugins-bad-a43db678c18317ed465f9fa89b94c440e9438ae5.tar.gz
atdec: Set the correct layer depending on the MP3 caps
Diffstat (limited to 'sys')
-rw-r--r--sys/applemedia/atdec.c23
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;