speex: Update for the new raw audio caps
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 4 Jan 2012 14:05:41 +0000 (15:05 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 5 Jan 2012 09:36:49 +0000 (10:36 +0100)
ext/speex/gstspeexdec.c
ext/speex/gstspeexenc.c

index 1936820..4ba4d28 100644 (file)
@@ -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;
 
index 01202ea..3bf2bbc 100644 (file)
@@ -59,7 +59,14 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-raw, "
         "format = (string) " FORMAT_STR ", "
-        "rate = (int) [ 6000, 48000 ], " "channels = (int) [ 1, 2 ]")
+        "layout = (string) interleaved, "
+        "rate = (int) [ 6000, 48000 ], "
+        "channels = (int) 1; "
+        "audio/x-raw, "
+        "format = (string) " FORMAT_STR ", "
+        "layout = (string) interleaved, "
+        "rate = (int) [ 6000, 48000 ], "
+        "channels = (int) 2, " "channel-mask = (bitmask) 0x3")
     );
 
 static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",