summaryrefslogtreecommitdiff
path: root/ext/speex/gstspeexdec.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-01-04 15:05:41 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-01-05 10:36:49 +0100
commit4b6a410be093faff9527504e03cf6d1a91df6cdf (patch)
treeeb0e71fb66713606dc868a0ab67787a9e5afa1ed /ext/speex/gstspeexdec.c
parent42bdbbcb290fe28ea6481fcd3b8683ca3fe8e25d (diff)
downloadgstreamer-plugins-good-4b6a410be093faff9527504e03cf6d1a91df6cdf.tar.gz
speex: Update for the new raw audio caps
Diffstat (limited to 'ext/speex/gstspeexdec.c')
-rw-r--r--ext/speex/gstspeexdec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index 19368202b..4ba4d285f 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -67,6 +67,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("audio/x-raw, "
"format = (string) " FORMAT_STR ", "
+ "layout = (string) interleaved, "
"rate = (int) [ 6000, 48000 ], " "channels = (int) [ 1, 2 ]")
);
@@ -231,9 +232,16 @@ gst_speex_dec_parse_header (GstSpeexDec * dec, GstBuffer * buf)
/* set caps */
caps = gst_caps_new_simple ("audio/x-raw",
"format", G_TYPE_STRING, FORMAT_STR,
+ "layout", G_TYPE_STRING, "interleaved",
"rate", G_TYPE_INT, dec->header->rate,
"channels", G_TYPE_INT, dec->header->nb_channels, NULL);
+ if (dec->header->nb_channels == 2) {
+ gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK,
+ GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_LEFT) |
+ GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_RIGHT), NULL);
+ }
+
if (!gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), caps))
goto nego_failed;