summaryrefslogtreecommitdiffstats
path: root/ext/xine/xineaudiodec.c
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2004-03-14 22:34:33 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2004-03-14 22:34:33 +0000
commit7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2 (patch)
treef863b467dea9559a6ec9c48affbfae11f8104164 /ext/xine/xineaudiodec.c
parenta19db4bbdc4a15ea0d8f4d28e9a1302c9c3d1657 (diff)
downloadgst-plugins-bad-7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2.tar.gz
gst-plugins-bad-7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2.tar.bz2
gst-plugins-bad-7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2.zip
gst-indent
Original commit message from CVS: gst-indent
Diffstat (limited to 'ext/xine/xineaudiodec.c')
-rw-r--r--ext/xine/xineaudiodec.c335
1 files changed, 177 insertions, 158 deletions
diff --git a/ext/xine/xineaudiodec.c b/ext/xine/xineaudiodec.c
index 93f3984a..869c3b4d 100644
--- a/ext/xine/xineaudiodec.c
+++ b/ext/xine/xineaudiodec.c
@@ -37,46 +37,47 @@
GType gst_xine_audio_dec_get_type (void);
-typedef struct _GstXineAudioDec GstXineAudioDec;
+typedef struct _GstXineAudioDec GstXineAudioDec;
typedef struct _GstXineAudioDecClass GstXineAudioDecClass;
struct _GstXineAudioDec
{
- GstXine parent;
+ GstXine parent;
- GstPad * sinkpad;
- GstPad * srcpad;
+ GstPad *sinkpad;
+ GstPad *srcpad;
- audio_decoder_t * decoder;
- guint32 format;
- xine_waveformatex wave;
- gboolean setup;
+ audio_decoder_t *decoder;
+ guint32 format;
+ xine_waveformatex wave;
+ gboolean setup;
};
-struct _GstXineAudioDecClass
+struct _GstXineAudioDecClass
{
- GstXineClass parent_class;
+ GstXineClass parent_class;
- plugin_node_t * plugin_node;
+ plugin_node_t *plugin_node;
};
/*** xine audio driver wrapper ************************************************/
-
-typedef struct {
- xine_ao_driver_t driver;
- GstXineAudioDec * xine;
- gboolean open;
+
+typedef struct
+{
+ xine_ao_driver_t driver;
+ GstXineAudioDec *xine;
+ gboolean open;
} GstXineAudioDriver;
static guint32
-_driver_get_capabilities (xine_ao_driver_t *driver)
+_driver_get_capabilities (xine_ao_driver_t * driver)
{
/* FIXME: add more when gst handles more than 2 channels */
return AO_CAP_MODE_MONO | AO_CAP_MODE_STEREO | AO_CAP_8BITS;
}
static gint
-_driver_get_property (xine_ao_driver_t *driver, int property)
+_driver_get_property (xine_ao_driver_t * driver, int property)
{
return 0;
}
@@ -88,80 +89,82 @@ _driver_set_property (xine_ao_driver_t * driver, int property, int value)
}
static gint
-_driver_open (xine_ao_driver_t *driver, xine_stream_t *stream, guint32 bits, guint32 rate, int mode)
+_driver_open (xine_ao_driver_t * driver, xine_stream_t * stream, guint32 bits,
+ guint32 rate, int mode)
{
GstCaps *caps;
GstXineAudioDriver *xine = ((GstXineAudioDriver *) driver);
-
+
caps = gst_caps_new_simple ("audio/x-raw-int",
- "endianness", G_TYPE_INT, G_BYTE_ORDER,
- "width", G_TYPE_INT, (gint) bits,
- "depth", G_TYPE_INT, (gint) bits,
- "signed", G_TYPE_BOOLEAN, (bits == 8) ? FALSE : TRUE,
- "channels", G_TYPE_INT, (mode | AO_CAP_MODE_STEREO) ? 2 : 1,
- "rate", G_TYPE_INT, rate,
- NULL);
-
+ "endianness", G_TYPE_INT, G_BYTE_ORDER,
+ "width", G_TYPE_INT, (gint) bits,
+ "depth", G_TYPE_INT, (gint) bits,
+ "signed", G_TYPE_BOOLEAN, (bits == 8) ? FALSE : TRUE,
+ "channels", G_TYPE_INT, (mode | AO_CAP_MODE_STEREO) ? 2 : 1,
+ "rate", G_TYPE_INT, rate, NULL);
+
if (!gst_pad_set_explicit_caps (xine->xine->srcpad, caps)) {
gst_caps_free (caps);
driver->open = FALSE;
return -1;
}
-
+
xine->open = TRUE;
gst_caps_free (caps);
return rate;
}
static void
-_driver_close (xine_ao_driver_t *driver, xine_stream_t *stream)
+_driver_close (xine_ao_driver_t * driver, xine_stream_t * stream)
{
/* FIXME: unset explicit caps here? And how? */
driver->open = FALSE;
}
static void
-_driver_exit (xine_ao_driver_t *driver)
+_driver_exit (xine_ao_driver_t * driver)
{
g_free (driver);
}
static int
-_driver_control (xine_ao_driver_t *driver, int cmd, ...)
+_driver_control (xine_ao_driver_t * driver, int cmd, ...)
{
return 0;
}
static void
-_driver_flush (xine_ao_driver_t *driver)
+_driver_flush (xine_ao_driver_t * driver)
{
}
static int
-_driver_status (xine_ao_driver_t *driver, xine_stream_t *stream, uint32_t *bits, uint32_t *rate, int *mode)
+_driver_status (xine_ao_driver_t * driver, xine_stream_t * stream,
+ uint32_t * bits, uint32_t * rate, int *mode)
{
const GstCaps *caps;
GstStructure *structure;
gint temp;
GstXineAudioDriver *xine = (GstXineAudioDriver *) driver;
-
- if (xine->open == FALSE || !(caps = gst_pad_get_negotiated_caps (xine->xine->srcpad)))
+
+ if (xine->open == FALSE
+ || !(caps = gst_pad_get_negotiated_caps (xine->xine->srcpad)))
return 0;
structure = gst_caps_get_structure (caps, 0);
- *bits = 0; /* FIXME */
+ *bits = 0; /* FIXME */
if (!gst_structure_get_int (structure, "rate", &temp)) {
- g_assert_not_reached (); /* may never happen with negotiated caps */
+ g_assert_not_reached (); /* may never happen with negotiated caps */
return 0;
}
*rate = temp;
if (!gst_structure_get_int (structure, "channels", &temp)) {
- g_assert_not_reached (); /* may never happen with negotiated caps */
+ g_assert_not_reached (); /* may never happen with negotiated caps */
return 0;
}
*mode = (temp == 2) ? AO_CAP_MODE_STEREO : AO_CAP_MODE_MONO;
if (!gst_structure_get_int (structure, "width", &temp)) {
- g_assert_not_reached (); /* may never happen with negotiated caps */
+ g_assert_not_reached (); /* may never happen with negotiated caps */
return 0;
}
if (temp == 8)
@@ -172,25 +175,26 @@ _driver_status (xine_ao_driver_t *driver, xine_stream_t *stream, uint32_t *bits,
#define _DRIVER_BUFFER_SIZE 4096
static audio_buffer_t *
-_driver_get_buffer (xine_ao_driver_t *driver)
+_driver_get_buffer (xine_ao_driver_t * driver)
{
GstXineAudioDriver *xine = (GstXineAudioDriver *) driver;
- audio_buffer_t *audio = g_new0 (audio_buffer_t, 1);
+ audio_buffer_t *audio = g_new0 (audio_buffer_t, 1);
audio->mem = g_malloc (_DRIVER_BUFFER_SIZE);
audio->mem_size = _DRIVER_BUFFER_SIZE;
audio->stream = gst_xine_get_stream (GST_XINE (xine->xine));
/* FIXME: fill more fields */
-
+
return audio;
}
-static void
-_driver_put_buffer (xine_ao_driver_t *driver, audio_buffer_t *audio, xine_stream_t *stream)
+static void
+_driver_put_buffer (xine_ao_driver_t * driver, audio_buffer_t * audio,
+ xine_stream_t * stream)
{
GstXineAudioDriver *xine = (GstXineAudioDriver *) driver;
GstBuffer *buffer;
-
+
buffer = gst_buffer_new ();
GST_BUFFER_DATA (buffer) = (guint8 *) audio->mem;
GST_BUFFER_SIZE (buffer) = audio->mem_size;
@@ -199,27 +203,27 @@ _driver_put_buffer (xine_ao_driver_t *driver, audio_buffer_t *audio, xine_stream
g_free (audio);
gst_pad_push (xine->xine->srcpad, GST_DATA (buffer));
}
-
+
static xine_ao_driver_t *
-_gst_xine_audio_dec_create_audio_driver (GstXine *xine)
+_gst_xine_audio_dec_create_audio_driver (GstXine * xine)
{
GstXineAudioDriver *driver = g_new (GstXineAudioDriver, 1);
driver->xine = GST_XINE_AUDIO_DEC (xine);
driver->open = FALSE;
-
- driver->driver.get_buffer = _driver_get_buffer;
- driver->driver.put_buffer = _driver_put_buffer;
- driver->driver.get_capabilities = _driver_get_capabilities;
- driver->driver.get_property = _driver_get_property;
- driver->driver.set_property = _driver_set_property;
- driver->driver.open = _driver_open;
- driver->driver.close = _driver_close;
- driver->driver.exit = _driver_exit;
- driver->driver.control = _driver_control;
- driver->driver.flush = _driver_flush;
- driver->driver.status = _driver_status;
-
+
+ driver->driver.get_buffer = _driver_get_buffer;
+ driver->driver.put_buffer = _driver_put_buffer;
+ driver->driver.get_capabilities = _driver_get_capabilities;
+ driver->driver.get_property = _driver_get_property;
+ driver->driver.set_property = _driver_set_property;
+ driver->driver.open = _driver_open;
+ driver->driver.close = _driver_close;
+ driver->driver.exit = _driver_exit;
+ driver->driver.control = _driver_control;
+ driver->driver.flush = _driver_flush;
+ driver->driver.status = _driver_status;
+
return (xine_ao_driver_t *) driver;
}
@@ -227,20 +231,22 @@ _gst_xine_audio_dec_create_audio_driver (GstXine *xine)
GST_BOILERPLATE (GstXineAudioDec, gst_xine_audio_dec, GstXine, GST_TYPE_XINE)
-static void gst_xine_audio_dec_chain (GstPad *pad, GstData *in);
-static GstElementStateReturn
- gst_xine_audio_dec_change_state (GstElement *element);
+ static void gst_xine_audio_dec_chain (GstPad * pad, GstData * in);
+ static GstElementStateReturn
+ gst_xine_audio_dec_change_state (GstElement * element);
/* this function handles the link with other plug-ins */
-static GstPadLinkReturn
-gst_xine_audio_dec_sink_link (GstPad *pad, const GstCaps *caps)
+ static GstPadLinkReturn
+ gst_xine_audio_dec_sink_link (GstPad * pad, const GstCaps * caps)
{
guint temp;
GstStructure *structure;
- GstXineAudioDec *xine = GST_XINE_AUDIO_DEC (gst_object_get_parent (GST_OBJECT (pad)));
+ GstXineAudioDec *xine =
+ GST_XINE_AUDIO_DEC (gst_object_get_parent (GST_OBJECT (pad)));
xine->format = gst_xine_get_format_for_caps (caps);
- if (xine->format == 0) return GST_PAD_LINK_REFUSED;
+ if (xine->format == 0)
+ return GST_PAD_LINK_REFUSED;
/* get setup data */
xine->setup = FALSE;
@@ -249,7 +255,7 @@ gst_xine_audio_dec_sink_link (GstPad *pad, const GstCaps *caps)
xine->wave.nChannels = temp;
if (gst_structure_get_int (structure, "rate", &temp))
xine->wave.nSamplesPerSec = temp;
- xine->wave.wBitsPerSample = 16; /* FIXME: how do we figure this thing out? */
+ xine->wave.wBitsPerSample = 16; /* FIXME: how do we figure this thing out? */
/* FIXME: fill wave header better */
return GST_PAD_LINK_OK;
@@ -261,7 +267,7 @@ gst_xine_audio_dec_base_init (gpointer g_class)
}
static void
-gst_xine_audio_dec_class_init (GstXineAudioDecClass *klass)
+gst_xine_audio_dec_class_init (GstXineAudioDecClass * klass)
{
GstXineClass *xine = GST_XINE_CLASS (klass);
GstElementClass *element = GST_ELEMENT_CLASS (klass);
@@ -272,22 +278,23 @@ gst_xine_audio_dec_class_init (GstXineAudioDecClass *klass)
}
static void
-gst_xine_audio_dec_init (GstXineAudioDec *xine)
+gst_xine_audio_dec_init (GstXineAudioDec * xine)
{
xine->setup = FALSE;
}
static void
-gst_xine_audio_dec_event (GstXineAudioDec *xine, GstEvent *event)
+gst_xine_audio_dec_event (GstXineAudioDec * xine, GstEvent * event)
{
gst_pad_event_default (xine->sinkpad, event);
}
static void
-gst_xine_audio_dec_chain (GstPad *pad, GstData *in)
+gst_xine_audio_dec_chain (GstPad * pad, GstData * in)
{
buf_element_t buffer = { 0, };
- GstXineAudioDec *xine = GST_XINE_AUDIO_DEC (gst_object_get_parent (GST_OBJECT (pad)));
+ GstXineAudioDec *xine =
+ GST_XINE_AUDIO_DEC (gst_object_get_parent (GST_OBJECT (pad)));
if (GST_IS_EVENT (in)) {
gst_xine_audio_dec_event (xine, GST_EVENT (in));
@@ -296,7 +303,8 @@ gst_xine_audio_dec_chain (GstPad *pad, GstData *in)
if (xine->format == 0) {
/* no caps yet */
- GST_ELEMENT_ERROR (xine, CORE, NEGOTIATION, (NULL), ("buffer sent before doing caps nego"));
+ GST_ELEMENT_ERROR (xine, CORE, NEGOTIATION, (NULL),
+ ("buffer sent before doing caps nego"));
gst_data_unref (in);
return;
}
@@ -306,6 +314,7 @@ gst_xine_audio_dec_chain (GstPad *pad, GstData *in)
guint8 stsd[150] = { 0, };
guint temp;
GstStructure *structure;
+
/* sent setup header */
element.type = xine->format;
element.decoder_flags = BUF_FLAG_HEADER;
@@ -313,45 +322,46 @@ gst_xine_audio_dec_chain (GstPad *pad, GstData *in)
element.decoder_info[1] = xine->wave.nSamplesPerSec;
element.decoder_info[2] = xine->wave.wBitsPerSample;
element.decoder_info[3] = xine->wave.nChannels;
- element.content = (guchar *) &xine->wave;
+ element.content = (guchar *) & xine->wave;
element.size = sizeof (xine_waveformatex);
xine->decoder->decode_data (xine->decoder, &element);
/* send stsd emulation to the decoder */
/* FIXME: qdm2 only right now */
g_assert (gst_pad_get_negotiated_caps (xine->sinkpad));
- structure = gst_caps_get_structure (gst_pad_get_negotiated_caps (xine->sinkpad), 0);
- *((guint32 *) &stsd[56]) = GUINT32_TO_BE (12);
+ structure =
+ gst_caps_get_structure (gst_pad_get_negotiated_caps (xine->sinkpad), 0);
+ *((guint32 *) & stsd[56]) = GUINT32_TO_BE (12);
memcpy (&stsd[60], "frmaQDM2", 8);
- *((guint32 *) &stsd[68]) = GUINT32_TO_BE (36);
+ *((guint32 *) & stsd[68]) = GUINT32_TO_BE (36);
memcpy (&stsd[72], "QDCA", 4);
- *((guint32 *) &stsd[76]) = GUINT32_TO_BE (1);
+ *((guint32 *) & stsd[76]) = GUINT32_TO_BE (1);
if (!gst_structure_get_int (structure, "channels", &temp))
temp = 0;
- *((guint32 *) &stsd[80]) = GUINT32_TO_BE (temp);
+ *((guint32 *) & stsd[80]) = GUINT32_TO_BE (temp);
if (!gst_structure_get_int (structure, "rate", &temp))
temp = 0;
- *((guint32 *) &stsd[84]) = GUINT32_TO_BE (temp);
+ *((guint32 *) & stsd[84]) = GUINT32_TO_BE (temp);
if (!gst_structure_get_int (structure, "bitrate", &temp))
temp = 0;
- *((guint32 *) &stsd[88]) = GUINT32_TO_BE (temp);
+ *((guint32 *) & stsd[88]) = GUINT32_TO_BE (temp);
if (!gst_structure_get_int (structure, "blocksize", &temp))
temp = 0;
- *((guint32 *) &stsd[92]) = GUINT32_TO_BE (temp);
- *((guint32 *) &stsd[96]) = GUINT32_TO_BE (256);
+ *((guint32 *) & stsd[92]) = GUINT32_TO_BE (temp);
+ *((guint32 *) & stsd[96]) = GUINT32_TO_BE (256);
if (!gst_structure_get_int (structure, "framesize", &temp))
temp = 0;
- *((guint32 *) &stsd[100]) = GUINT32_TO_BE (temp);
- *((guint32 *) &stsd[104]) = GUINT32_TO_BE (28);
+ *((guint32 *) & stsd[100]) = GUINT32_TO_BE (temp);
+ *((guint32 *) & stsd[104]) = GUINT32_TO_BE (28);
memcpy (&stsd[108], "QDCP", 4);
- *((guint32 *) &stsd[112]) = GUINT32_TO_BE (1065353216);
- *((guint32 *) &stsd[116]) = GUINT32_TO_BE (0);
- *((guint32 *) &stsd[120]) = GUINT32_TO_BE (1065353216);
- *((guint32 *) &stsd[124]) = GUINT32_TO_BE (1065353216);
- *((guint32 *) &stsd[128]) = GUINT32_TO_BE (27);
- *((guint32 *) &stsd[132]) = GUINT32_TO_BE (8);
- *((guint32 *) &stsd[136]) = GUINT32_TO_BE (0);
- *((guint32 *) &stsd[140]) = GUINT32_TO_BE (24);
- gst_util_dump_mem (stsd, 144);
+ *((guint32 *) & stsd[112]) = GUINT32_TO_BE (1065353216);
+ *((guint32 *) & stsd[116]) = GUINT32_TO_BE (0);
+ *((guint32 *) & stsd[120]) = GUINT32_TO_BE (1065353216);
+ *((guint32 *) & stsd[124]) = GUINT32_TO_BE (1065353216);
+ *((guint32 *) & stsd[128]) = GUINT32_TO_BE (27);
+ *((guint32 *) & stsd[132]) = GUINT32_TO_BE (8);
+ *((guint32 *) & stsd[136]) = GUINT32_TO_BE (0);
+ *((guint32 *) & stsd[140]) = GUINT32_TO_BE (24);
+ gst_util_dump_mem (stsd, 144);
element.decoder_flags = BUF_FLAG_SPECIAL;
element.decoder_info[1] = BUF_SPECIAL_STSD_ATOM;
element.decoder_info[2] = 144;
@@ -360,10 +370,10 @@ gst_xine_audio_dec_chain (GstPad *pad, GstData *in)
element.size = 0;
element.content = 0;
xine->decoder->decode_data (xine->decoder, &element);
-
+
xine->setup = TRUE;
}
-
+
gst_buffer_to_xine_buffer (&buffer, GST_BUFFER (in));
buffer.type = xine->format;
xine->decoder->decode_data (xine->decoder, &buffer);
@@ -371,13 +381,13 @@ gst_xine_audio_dec_chain (GstPad *pad, GstData *in)
}
static audio_decoder_t *
-_load_decoder (GstXineAudioDec* dec)
+_load_decoder (GstXineAudioDec * dec)
{
xine_stream_t *stream = gst_xine_get_stream (GST_XINE (dec));
plugin_catalog_t *catalog = stream->xine->plugin_catalog;
plugin_node_t *node = GST_XINE_AUDIO_DEC_GET_CLASS (dec)->plugin_node;
audio_decoder_t *ret;
-
+
/* FIXME: this is really hacky, but how to force xine to load a plugin? */
/* how it works: xine can load a plugin for a particular stream type.
* We just take one type, which should not have plugins attached to it,
@@ -391,10 +401,10 @@ _load_decoder (GstXineAudioDec* dec)
}
static GstElementStateReturn
-gst_xine_audio_dec_change_state (GstElement *element)
+gst_xine_audio_dec_change_state (GstElement * element)
{
GstXineAudioDec *xine = GST_XINE_AUDIO_DEC (element);
-
+
switch (GST_STATE_TRANSITION (element)) {
case GST_STATE_NULL_TO_READY:
xine->decoder = _load_decoder (xine);
@@ -411,68 +421,69 @@ gst_xine_audio_dec_change_state (GstElement *element)
break;
case GST_STATE_READY_TO_NULL:
xine->setup = FALSE;
- _x_free_audio_decoder (gst_xine_get_stream (GST_XINE (xine)), xine->decoder);
+ _x_free_audio_decoder (gst_xine_get_stream (GST_XINE (xine)),
+ xine->decoder);
break;
default:
GST_ERROR_OBJECT (element, "invalid state change");
break;
}
-
- return GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, (element), GST_STATE_SUCCESS);
+
+ return GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state,
+ (element), GST_STATE_SUCCESS);
}
/** GstXineAudioDec subclasses ************************************************/
-static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE (
- "src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS (
- "audio/x-raw-int, "
- "endianness = (int) BYTE_ORDER, "
- "signed = (boolean) TRUE, "
- "width = (int) 16, "
- "depth = (int) 16, "
- "rate = (int) [ 1, MAX ], "
- "channels = (int) [ 1, 2 ]; "
- "audio/x-raw-int, "
- "signed = (boolean) FALSE, "
- "width = (int) 8, "
- "depth = (int) 8, "
- "rate = (int) [ 1, MAX ], "
- "channels = (int) [ 1, 2 ]"
- )
-);
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/x-raw-int, "
+ "endianness = (int) BYTE_ORDER, "
+ "signed = (boolean) TRUE, "
+ "width = (int) 16, "
+ "depth = (int) 16, "
+ "rate = (int) [ 1, MAX ], "
+ "channels = (int) [ 1, 2 ]; "
+ "audio/x-raw-int, "
+ "signed = (boolean) FALSE, "
+ "width = (int) 8, "
+ "depth = (int) 8, "
+ "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ]")
+ );
static void
gst_xine_audio_dec_subclass_init (gpointer g_class, gpointer class_data)
{
GstXineAudioDecClass *xine_class = GST_XINE_AUDIO_DEC_CLASS (g_class);
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- GstElementDetails details = GST_ELEMENT_DETAILS (
- NULL,
- "Filter/Decoder/Audio",
- NULL,
- "Benjamin Otte <otte@gnome.org>"
- );
+ GstElementDetails details = GST_ELEMENT_DETAILS (NULL,
+ "Filter/Decoder/Audio",
+ NULL,
+ "Benjamin Otte <otte@gnome.org>");
GstPadTemplate *template;
guint i = 0;
GstCaps *caps = gst_caps_new_empty ();
decoder_info_t *dec;
-
+
xine_class->plugin_node = class_data;
dec = xine_class->plugin_node->info->special_info;
- details.longname = g_strdup_printf ("%s xine audio decoder", xine_class->plugin_node->info->id);
- details.description = g_strdup_printf ("decodes audio using the xine '%s' plugin", xine_class->plugin_node->info->id);
+ details.longname =
+ g_strdup_printf ("%s xine audio decoder",
+ xine_class->plugin_node->info->id);
+ details.description =
+ g_strdup_printf ("decodes audio using the xine '%s' plugin",
+ xine_class->plugin_node->info->id);
gst_element_class_set_details (element_class, &details);
g_free (details.longname);
g_free (details.description);
-
- gst_element_class_add_pad_template (element_class,
+
+ gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&src_template));
-
+
while (dec->supported_types[i] != 0) {
- const gchar *type_str = gst_xine_get_caps_for_format (dec->supported_types[i]);
+ const gchar *type_str =
+ gst_xine_get_caps_for_format (dec->supported_types[i]);
if (type_str) {
gst_caps_append (caps, gst_caps_from_string (type_str));
}
@@ -483,28 +494,29 @@ gst_xine_audio_dec_subclass_init (gpointer g_class, gpointer class_data)
}
static void
-gst_xine_audio_dec_sub_init (GTypeInstance *instance, gpointer g_class)
+gst_xine_audio_dec_sub_init (GTypeInstance * instance, gpointer g_class)
{
GstElementClass *klass = GST_ELEMENT_GET_CLASS (instance);
GstXineAudioDec *xine = GST_XINE_AUDIO_DEC (instance);
- xine->sinkpad = gst_pad_new_from_template (
- gst_element_class_get_pad_template (klass, "sink"), "sink");
+ xine->sinkpad =
+ gst_pad_new_from_template (gst_element_class_get_pad_template (klass,
+ "sink"), "sink");
gst_pad_set_link_function (xine->sinkpad, gst_xine_audio_dec_sink_link);
gst_pad_set_chain_function (xine->sinkpad, gst_xine_audio_dec_chain);
gst_element_add_pad (GST_ELEMENT (xine), xine->sinkpad);
- xine->srcpad = gst_pad_new_from_template (
- gst_element_class_get_pad_template (klass, "src"), "src");
+ xine->srcpad =
+ gst_pad_new_from_template (gst_element_class_get_pad_template (klass,
+ "src"), "src");
gst_pad_use_explicit_caps (xine->srcpad);
gst_element_add_pad (GST_ELEMENT (xine), xine->srcpad);
}
gboolean
-gst_xine_audio_dec_init_plugin (GstPlugin *plugin)
+gst_xine_audio_dec_init_plugin (GstPlugin * plugin)
{
- GTypeInfo plugin_info =
- {
+ GTypeInfo plugin_info = {
sizeof (GstXineAudioDecClass),
NULL,
NULL,
@@ -517,9 +529,9 @@ gst_xine_audio_dec_init_plugin (GstPlugin *plugin)
};
xine_node_t *list;
GstXineClass *klass;
-
+
klass = g_type_class_ref (GST_TYPE_XINE);
-
+
list = klass->xine->plugin_catalog->audio->first;
while (list) {
plugin_node_t *node = list->content;
@@ -527,20 +539,28 @@ gst_xine_audio_dec_init_plugin (GstPlugin *plugin)
guint format = 0;
list = list->next;
- if (!node) continue;
-
+ if (!node)
+ continue;
+
dec = node->info->special_info;
while (dec->supported_types[format] != 0) {
- const gchar *caps = gst_xine_get_caps_for_format (dec->supported_types[format]);
+ const gchar *caps =
+ gst_xine_get_caps_for_format (dec->supported_types[format]);
if (caps) {
- gchar *plugin_name = g_strdup_printf ("xineaudiodec_%s", node->info->id);
- gchar *type_name = g_strdup_printf ("GstXineAudioDec%s", node->info->id);
+ gchar *plugin_name =
+ g_strdup_printf ("xineaudiodec_%s", node->info->id);
+ gchar *type_name =
+ g_strdup_printf ("GstXineAudioDec%s", node->info->id);
GType type;
+
plugin_info.class_data = node;
- type = g_type_register_static (GST_TYPE_XINE_AUDIO_DEC, type_name, &plugin_info, 0);
+ type =
+ g_type_register_static (GST_TYPE_XINE_AUDIO_DEC, type_name,
+ &plugin_info, 0);
g_free (type_name);
- if (!gst_element_register (plugin, plugin_name,
- MAX (GST_RANK_MARGINAL, GST_RANK_MARGINAL * dec->priority / 10 + 1), type)) {
+ if (!gst_element_register (plugin, plugin_name,
+ MAX (GST_RANK_MARGINAL,
+ GST_RANK_MARGINAL * dec->priority / 10 + 1), type)) {
g_free (plugin_name);
return FALSE;
}
@@ -550,7 +570,6 @@ gst_xine_audio_dec_init_plugin (GstPlugin *plugin)
}
}
- g_type_class_unref (klass);
+ g_type_class_unref (klass);
return TRUE;
}
-