diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-12-03 18:13:43 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-12-03 18:13:43 +0000 |
commit | 40e9cff5bc1d759cfc54af6fd9e88f5178efeee6 (patch) | |
tree | 1664bc68a908f3ef465f7e07f02dcab3ede23f64 /ext | |
parent | 461861f3debcfa74c48915144fa19801fb61b35d (diff) | |
download | gst-plugins-bad-40e9cff5bc1d759cfc54af6fd9e88f5178efeee6.tar.gz gst-plugins-bad-40e9cff5bc1d759cfc54af6fd9e88f5178efeee6.tar.bz2 gst-plugins-bad-40e9cff5bc1d759cfc54af6fd9e88f5178efeee6.zip |
ext/musepack/gstmusepackdec.cpp: There's also floating point libmusepacks.
Original commit message from CVS:
* ext/musepack/gstmusepackdec.cpp:
There's also floating point libmusepacks.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/musepack/gstmusepackdec.c | 34 | ||||
-rw-r--r-- | ext/musepack/gstmusepackdec.cpp | 34 |
2 files changed, 42 insertions, 26 deletions
diff --git a/ext/musepack/gstmusepackdec.c b/ext/musepack/gstmusepackdec.c index 08f8d569..a86828c2 100644 --- a/ext/musepack/gstmusepackdec.c +++ b/ext/musepack/gstmusepackdec.c @@ -30,14 +30,24 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("audio/x-musepack") ); +#ifdef MPC_FIXED_POINT +#define BASE_CAPS \ + "audio/x-raw-int, " \ + "signed = (bool) TRUE, " \ + "width = (int) 32, " \ + "depth = (int) 32" +#else +#define BASE_CAPS \ + "audio/x-raw-float, " \ + "width = (int) 32, " \ + "buffer-frames = (int) 0" +#endif + static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw-int, " + GST_STATIC_CAPS (BASE_CAPS ", " "endianness = (int) BYTE_ORDER, " - "signed = (bool) TRUE, " - "width = (int) 32, " - "depth = (int) 32, " "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]") ); @@ -352,6 +362,7 @@ static gboolean gst_musepack_stream_init (GstMusepackDec * musepackdec) { StreamInfo si = StreamInfo (); + GstCaps *caps; if (musepackdec->dec) delete musepackdec->dec; @@ -379,15 +390,12 @@ gst_musepack_stream_init (GstMusepackDec * musepackdec) return FALSE; } - if (!gst_pad_set_explicit_caps (musepackdec->srcpad, - gst_caps_new_simple ("audio/x-raw-int", - "width", G_TYPE_INT, 32, - "depth", G_TYPE_INT, 32, - "endianness", G_TYPE_INT, G_BYTE_ORDER, - "channels", G_TYPE_INT, si.simple.Channels, - "rate", G_TYPE_INT, si.simple.SampleFreq, - "signed", G_TYPE_BOOLEAN, TRUE, - NULL))) { + caps = gst_caps_from_string (BASE_CAPS); + gst_caps_set_simple (caps, + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "channels", G_TYPE_INT, si.simple.Channels, + "rate", G_TYPE_INT, si.simple.SampleFreq, NULL); + if (!gst_pad_set_explicit_caps (musepackdec->srcpad, caps)) { GST_ELEMENT_ERROR (musepackdec, CORE, NEGOTIATION, (NULL), (NULL)); delete musepackdec->dec; musepackdec->dec = NULL; diff --git a/ext/musepack/gstmusepackdec.cpp b/ext/musepack/gstmusepackdec.cpp index 08f8d569..a86828c2 100644 --- a/ext/musepack/gstmusepackdec.cpp +++ b/ext/musepack/gstmusepackdec.cpp @@ -30,14 +30,24 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("audio/x-musepack") ); +#ifdef MPC_FIXED_POINT +#define BASE_CAPS \ + "audio/x-raw-int, " \ + "signed = (bool) TRUE, " \ + "width = (int) 32, " \ + "depth = (int) 32" +#else +#define BASE_CAPS \ + "audio/x-raw-float, " \ + "width = (int) 32, " \ + "buffer-frames = (int) 0" +#endif + static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw-int, " + GST_STATIC_CAPS (BASE_CAPS ", " "endianness = (int) BYTE_ORDER, " - "signed = (bool) TRUE, " - "width = (int) 32, " - "depth = (int) 32, " "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]") ); @@ -352,6 +362,7 @@ static gboolean gst_musepack_stream_init (GstMusepackDec * musepackdec) { StreamInfo si = StreamInfo (); + GstCaps *caps; if (musepackdec->dec) delete musepackdec->dec; @@ -379,15 +390,12 @@ gst_musepack_stream_init (GstMusepackDec * musepackdec) return FALSE; } - if (!gst_pad_set_explicit_caps (musepackdec->srcpad, - gst_caps_new_simple ("audio/x-raw-int", - "width", G_TYPE_INT, 32, - "depth", G_TYPE_INT, 32, - "endianness", G_TYPE_INT, G_BYTE_ORDER, - "channels", G_TYPE_INT, si.simple.Channels, - "rate", G_TYPE_INT, si.simple.SampleFreq, - "signed", G_TYPE_BOOLEAN, TRUE, - NULL))) { + caps = gst_caps_from_string (BASE_CAPS); + gst_caps_set_simple (caps, + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "channels", G_TYPE_INT, si.simple.Channels, + "rate", G_TYPE_INT, si.simple.SampleFreq, NULL); + if (!gst_pad_set_explicit_caps (musepackdec->srcpad, caps)) { GST_ELEMENT_ERROR (musepackdec, CORE, NEGOTIATION, (NULL), (NULL)); delete musepackdec->dec; musepackdec->dec = NULL; |