[0.11] gst-plugins-good: auparse: Port to the new multichannel caps and the new raw audio layout field
Sebastian Dröge
slomo at kemper.freedesktop.org
Thu Jan 5 01:37:28 PST 2012
Module: gst-plugins-good
Branch: 0.11
Commit: 51c7259c976432a64cb068ec2fde81345d164a0b
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=51c7259c976432a64cb068ec2fde81345d164a0b
Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date: Wed Jan 4 11:06:28 2012 +0100
auparse: Port to the new multichannel caps and the new raw audio layout field
---
gst/auparse/gstauparse.c | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c
index 7c1734b..55955a1 100644
--- a/gst/auparse/gstauparse.c
+++ b/gst/auparse/gstauparse.c
@@ -49,7 +49,16 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
"S32LE, S32BE, F32LE, F32BE, " \
"F64LE, F64BE }, " \
"rate = (int) [ 8000, 192000 ], " \
- "channels = (int) [ 1, 2 ]"
+ "channels = (int) 1, " \
+ "layout = (string) interleaved;" \
+ "audio/x-raw, " \
+ "format= (string) { S8, S16LE, S16BE, S24LE, S24BE, " \
+ "S32LE, S32BE, F32LE, F32BE, " \
+ "F64LE, F64BE }, " \
+ "rate = (int) [ 8000, 192000 ], " \
+ "channels = (int) 2, " \
+ "channel-mask = (bitmask) 0x3," \
+ "layout = (string) interleaved;"
#define GST_AU_PARSE_ALAW_PAD_TEMPLATE_CAPS \
"audio/x-alaw, " \
@@ -339,10 +348,17 @@ gst_au_parse_parse_header (GstAuParse * auparse)
"channels", G_TYPE_INT, auparse->channels, NULL);
auparse->sample_size = auparse->channels;
} else if (format != GST_AUDIO_FORMAT_UNKNOWN) {
+ const GstCaps *templ_caps = gst_pad_get_pad_template_caps (auparse->srcpad);
+ GstCaps *intersection;
+
tempcaps = gst_caps_new_simple ("audio/x-raw",
"format", G_TYPE_STRING, gst_audio_format_to_string (format),
"rate", G_TYPE_INT, auparse->samplerate,
"channels", G_TYPE_INT, auparse->channels, NULL);
+
+ intersection = gst_caps_intersect (tempcaps, templ_caps);
+ gst_caps_unref (tempcaps);
+ tempcaps = intersection;
} else if (layout[0]) {
tempcaps = gst_caps_new_simple ("audio/x-adpcm",
"layout", G_TYPE_STRING, layout, NULL);
More information about the gstreamer-commits
mailing list