+2005-08-15 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/gst/gstreamer-sections.txt:
+ made some defines private
+ * docs/gst/tmpl/gstconfig.sgml:
+ * docs/gst/tmpl/gstqueue.sgml:
+ * docs/gst/tmpl/gsttaglist.sgml:
+ * docs/gst/tmpl/gsttypes.sgml:
+ * docs/gst/tmpl/gstutils.sgml:
+ * docs/pwg/appendix-porting.xml:
+ * gst/base/gstbasesink.h:
+ * gst/base/gstbasesrc.c:
+ * gst/base/gstbasesrc.h:
+ * gst/elements/gstfakesink.c: (gst_fake_sink_class_init):
+ * gst/elements/gstfakesrc.c: (gst_fake_src_class_init):
+ * gst/gstelement.c: (gst_element_class_init):
+ * gst/gstpad.c: (gst_pad_class_init):
+ * gst/gstqueue.c: (gst_queue_class_init):
+ * gst/gstxml.c: (gst_xml_class_init):
+ documented all undocumented signal inline
+ * libs/gst/controller/gst-controller.h:
+ added padding
+
2005-08-15 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* docs/pwg/appendix-porting.xml:
-Subproject commit 856fbbfa88621ab67df141ead8d4d3df32c5c176
+Subproject commit 8ff526a316f9b576e727b8e32cba0a53cdec07a6
<SECTION>
<FILE>gstconfig</FILE>
+<SUBSECTION Private>
GST_DISABLE_LOADSAVE_REGISTRY
GST_DISABLE_GST_DEBUG
GST_DISABLE_LOADSAVE
GstElementState
GstElementStateReturn
GstRank
-GST_PADDING
-GST_PADDING_INIT
<SUBSECTION Standard>
GST_TYPE_ELEMENT_STATE
GST_TYPE_ELEMENT_STATE_RETURN
GST_TYPE_RANK
<SUBSECTION Private>
+GST_PADDING
+GST_PADDING_INIT
gst_element_state_get_type
gst_element_state_return_get_type
gst_rank_get_type
<!-- ##### SECTION Stability_Level ##### -->
-<!-- ##### MACRO GST_DISABLE_LOADSAVE_REGISTRY ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_GST_DEBUG ##### -->
-<para>
-If this is defined, the <link linkend="gstreamer-gstinfo">debugging subsystem
-</link> is disabled and debugging messages are not output.
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_LOADSAVE ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_PARSE ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_TRACE ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_ALLOC_TRACE ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_REGISTRY ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_ENUMTYPES ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_INDEX ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_PLUGIN ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_DISABLE_URI ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_PTR_FORMAT ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_EXPORT ##### -->
-<para>
-Under Windows it permits to export variables from a DLL, otherwise it just means extern.
-</para>
-
-
-
-<!-- ##### MACRO GST_PLUGIN_EXPORT ##### -->
-<para>
-Under Windows it permits to automatically export the plugin definition, otherwise it just defines as nothing.
-</para>
-
-
-
<!-- ##### SIGNAL GstQueue::overrun ##### -->
<para>
-Reports that the buffer became full (overrun).
-A buffer is full if the total amount of data inside it (num-buffers, time,
-size) is higher than the boundary values which can be set through the GObject
-properties.
+
</para>
@gstqueue: the object which received the signal.
<!-- ##### SIGNAL GstQueue::underrun ##### -->
<para>
-Reports that the buffer became empty (underrun).
-A buffer is empty if the total amount of data inside it (num-buffers, time,
-size) is lower than the boundary values which can be set through the GObject
-properties.
+
</para>
@gstqueue: the object which received the signal.
+<!-- ##### MACRO GST_TAG_LANGUAGE_CODE ##### -->
+<para>
+
+</para>
+
+
+
@GST_RANK_SECONDARY: likely to be chosen
@GST_RANK_PRIMARY: will be chosen first
-<!-- ##### MACRO GST_PADDING ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GST_PADDING_INIT ##### -->
-<para>
-
-</para>
-
-
-
@num:
+<!-- ##### MACRO GST_ROUND_UP_2 ##### -->
+<para>
+
+</para>
+
+@num:
+
+
+<!-- ##### MACRO GST_ROUND_UP_4 ##### -->
+<para>
+
+</para>
+
+@num:
+
+
+<!-- ##### MACRO GST_ROUND_UP_8 ##### -->
+<para>
+
+</para>
+
+@num:
+
+
+<!-- ##### MACRO GST_ROUND_UP_16 ##### -->
+<para>
+
+</para>
+
+@num:
+
+
+<!-- ##### MACRO GST_ROUND_UP_32 ##### -->
+<para>
+
+</para>
+
+@num:
+
+
+<!-- ##### MACRO GST_ROUND_UP_64 ##### -->
+<para>
+
+</para>
+
+@num:
+
+
changes (so similar to <function>_set_link_function ()</function> in
&GStreamer;-0.8).
</para>
+ <para>
+ If the element is derived from a <classname>GstBase</classname> class,
+ then override the <function>set_caps ()</function>.
+ </para>
</listitem>
</itemizedlist>
</sect1>
#define GST_TYPE_BASE_SINK (gst_base_sink_get_type())
#define GST_BASE_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_SINK,GstBaseSink))
#define GST_BASE_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASE_SINK,GstBaseSinkClass))
-#define GST_BASE_SINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BASE_SINK, GstBaseSinkClass))
+#define GST_BASE_SINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BASE_SINK, GstBaseSinkClass))
#define GST_IS_BASE_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_SINK))
#define GST_IS_BASE_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_SINK))
-#define GST_BASE_SINK_CLOCK(obj) (GST_BASE_SINK (obj)->clock)
+/**
+ * GST_BASE_SINK_CLOCK:
+ * @obj: base sink instance
+ *
+ * Returns the pointer to the #GstClock object of the element.
+ */
+#define GST_BASE_SINK_CLOCK(obj) (GST_BASE_SINK (obj)->clock)
+/**
+ * GST_BASE_SINK_PAD:
+ * @obj: base sink instance
+ *
+ * Returns the pointer to the #GstPad object of the element.
+ */
#define GST_BASE_SINK_PAD(obj) (GST_BASE_SINK (obj)->sinkpad)
typedef struct _GstBaseSink GstBaseSink;
*
* This class is mostly useful for elements that do byte based
* access to a random access resource, like files.
+ * If random access is not possible, the live-mode should be set
+ * to TRUE.
*
* <itemizedlist>
* <listitem><para>one sinkpad</para></listitem>
G_OBJECT_CLASS (parent_class)->finalize (object);
}
+/**
+ * gst_base_src_set_live:
+ * @src: base source instance
+ * @live: new live-mode
+ *
+ * If the element listens to a live source, the @livemode should
+ * be set to %TRUE. This declares that this source can't seek.
+ */
void
gst_base_src_set_live (GstBaseSrc * src, gboolean live)
{
GST_LIVE_UNLOCK (src);
}
+/**
+ * gst_base_src_get_live:
+ * @src: base source instance
+ *
+ * Check if an element is in live mode.
+ *
+ * Returns: %TRUE if element is in live mode.
+ */
gboolean
gst_base_src_is_live (GstBaseSrc * src)
{
typedef struct _GstBaseSrc GstBaseSrc;
typedef struct _GstBaseSrcClass GstBaseSrcClass;
+/**
+ * GST_BASE_SRC_PAD:
+ * @obj: base source instance
+ *
+ * Returns the pointer to the #GstPad object of the element.
+ */
#define GST_BASE_SRC_PAD(obj) (GST_BASE_SRC (obj)->srcpad)
#define GST_LIVE_GET_LOCK(elem) (GST_BASE_SRC(elem)->live_lock)
g_param_spec_boolean ("dump", "Dump", "Dump received bytes to stdout",
DEFAULT_DUMP, G_PARAM_READWRITE));
+ /**
+ * GstFakeSink::handoff:
+ * @fakesink: the fakesink instance
+ * @buffer: the buffer that just has been received
+ * @pad: the pad that received it
+ *
+ * This signal gets emitted before unreffing the buffer.
+ */
gst_fake_sink_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstFakeSinkClass, handoff), NULL, NULL,
"True if the element cannot produce data in PAUSED", FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ /**
+ * GstFakeSrc::handoff:
+ * @fakesrc: the fakesrc instance
+ * @buffer: the buffer that will be pushed
+ * @pad: the pad that will sent it
+ *
+ * This signal gets emitted before sending the buffer.
+ */
gst_fake_src_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstFakeSrcClass, handoff), NULL, NULL,
/**
* GstElement::state-changed:
* @gstelement: the object which received the signal
- * @int:
- * @int:
+ * @old_state: the GST_STATE_XXX before the change
+ * @new_state: the GST_STATE_XXX after the change
*
* the #GstElementState of the element has been changed
*/
/**
* GstElement::pad-added:
* @gstelement: the object which received the signal
- * @object:
+ * @new_pad: the pad that has been added
*
* a new #GstPad has been added to the element
*/
/**
* GstElement::pad-removed:
* @gstelement: the object which received the signal
- * @object:
+ * @old_pad: the pad that has been removed
*
* a #GstPad has been removed from the element
*/
* GstElement::no-more-pads:
* @gstelement: the object which received the signal
*
- * ?
+ * This signals that the element will not generate more dynamic pads.
*/
gst_element_signals[NO_MORE_PADS] =
g_signal_new ("no-more-pads", G_TYPE_FROM_CLASS (klass),
gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_pad_set_property);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_pad_get_property);
+ /**
+ * GstPad::linked:
+ * @pad: the pad that emitted the signal
+ * @peer: the peer pad that has been connected
+ *
+ * Signals that a pad has been linked to the peer pad.
+ */
gst_pad_signals[PAD_LINKED] =
g_signal_new ("linked", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstPadClass, linked), NULL, NULL,
gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+ /**
+ * GstPad::unlinked:
+ * @pad: the pad that emitted the signal
+ * @peer: the peer pad that has been disconnected
+ *
+ * Signals that a pad has been unlinked from the peer pad.
+ */
gst_pad_signals[PAD_UNLINKED] =
g_signal_new ("unlinked", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstPadClass, unlinked), NULL, NULL,
gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+ /**
+ * GstPad::request-link:
+ * @pad: the pad that emitted the signal
+ * @peer: the peer pad for which a connection is requested
+ *
+ * Signals that a pad connection has been requested.
+ */
gst_pad_signals[PAD_REQUEST_LINK] =
- g_signal_new ("request_link", G_TYPE_FROM_CLASS (klass),
+ g_signal_new ("request-link", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstPadClass, request_link), NULL,
NULL, gst_marshal_VOID__OBJECT, G_TYPE_NONE, 0);
+ /**
+ * GstPad::have-data:
+ * @pad: the pad that emitted the signal
+ * @mini_obj: new data
+ *
+ * Signals that new data is available on the pad. This signal is used internaly.
+ *
+ * Returns: %TRUE to keep the data, %FALSE to drop it
+ */
gst_pad_signals[PAD_HAVE_DATA] =
g_signal_new ("have-data", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstPadClass, have_data),
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_queue_get_property);
/* signals */
+ /**
+ * GstQueue::underrun:
+ * @queue: the queue instance
+ *
+ * Reports that the buffer became empty (underrun).
+ * A buffer is empty if the total amount of data inside it (num-buffers, time,
+ * size) is lower than the boundary values which can be set through the GObject
+ * properties.
+ */
gst_queue_signals[SIGNAL_UNDERRUN] =
g_signal_new ("underrun", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GstQueueClass, underrun), NULL, NULL,
g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+ /**
+ * GstQueue::running:
+ * @queue: the queue instance
+ *
+ * Reports that enough (min-threshold) data is in the queue. Use this signal
+ * together with the underrun signal to pause the pipeline on underrun and wait
+ * for the queue to fill-up before resume playback.
+ */
gst_queue_signals[SIGNAL_RUNNING] =
g_signal_new ("running", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GstQueueClass, running), NULL, NULL,
g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+ /**
+ * GstQueue::overrun:
+ * @queue: the queue instance
+ *
+ * Reports that the buffer became full (overrun).
+ * A buffer is full if the total amount of data inside it (num-buffers, time,
+ * size) is higher than the boundary values which can be set through the GObject
+ * properties.
+ */
gst_queue_signals[SIGNAL_OVERRUN] =
g_signal_new ("overrun", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GstQueueClass, overrun), NULL, NULL,
parent_class = g_type_class_ref (GST_TYPE_OBJECT);
- /* FIXME G_TYPE_POINTER should be GType of xmlNodePtr */
+ /* FIXME G_TYPE_POINTER should be GType of xmlNodePtr
+ * (ensonic) can't be fixed, as libxml does not use GObject (unfortunately)
+ */
+ /**
+ * GstXML::object-loaded:
+ * @xml: the xml persistence instance
+ * @object: the object that has been loaded
+ * @xml_node: the related xml_node pointer to the document tree
+ *
+ * Signals that a new object has been deserialized.
+ */
gst_xml_signals[OBJECT_LOADED] =
g_signal_new ("object-loaded", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstXMLClass, object_loaded), NULL,
return gst_xml_parse_doc (xml, doc, root);
}
-/* FIXME guchar* */
+/* FIXME 0.9: guchar* */
/**
* gst_xml_parse_memory:
* @xml: a pointer to a GstXML object
#define GST_TYPE_BASE_SINK (gst_base_sink_get_type())
#define GST_BASE_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_SINK,GstBaseSink))
#define GST_BASE_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASE_SINK,GstBaseSinkClass))
-#define GST_BASE_SINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BASE_SINK, GstBaseSinkClass))
+#define GST_BASE_SINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BASE_SINK, GstBaseSinkClass))
#define GST_IS_BASE_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_SINK))
#define GST_IS_BASE_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_SINK))
-#define GST_BASE_SINK_CLOCK(obj) (GST_BASE_SINK (obj)->clock)
+/**
+ * GST_BASE_SINK_CLOCK:
+ * @obj: base sink instance
+ *
+ * Returns the pointer to the #GstClock object of the element.
+ */
+#define GST_BASE_SINK_CLOCK(obj) (GST_BASE_SINK (obj)->clock)
+/**
+ * GST_BASE_SINK_PAD:
+ * @obj: base sink instance
+ *
+ * Returns the pointer to the #GstPad object of the element.
+ */
#define GST_BASE_SINK_PAD(obj) (GST_BASE_SINK (obj)->sinkpad)
typedef struct _GstBaseSink GstBaseSink;
*
* This class is mostly useful for elements that do byte based
* access to a random access resource, like files.
+ * If random access is not possible, the live-mode should be set
+ * to TRUE.
*
* <itemizedlist>
* <listitem><para>one sinkpad</para></listitem>
G_OBJECT_CLASS (parent_class)->finalize (object);
}
+/**
+ * gst_base_src_set_live:
+ * @src: base source instance
+ * @live: new live-mode
+ *
+ * If the element listens to a live source, the @livemode should
+ * be set to %TRUE. This declares that this source can't seek.
+ */
void
gst_base_src_set_live (GstBaseSrc * src, gboolean live)
{
GST_LIVE_UNLOCK (src);
}
+/**
+ * gst_base_src_get_live:
+ * @src: base source instance
+ *
+ * Check if an element is in live mode.
+ *
+ * Returns: %TRUE if element is in live mode.
+ */
gboolean
gst_base_src_is_live (GstBaseSrc * src)
{
typedef struct _GstBaseSrc GstBaseSrc;
typedef struct _GstBaseSrcClass GstBaseSrcClass;
+/**
+ * GST_BASE_SRC_PAD:
+ * @obj: base source instance
+ *
+ * Returns the pointer to the #GstPad object of the element.
+ */
#define GST_BASE_SRC_PAD(obj) (GST_BASE_SRC (obj)->srcpad)
#define GST_LIVE_GET_LOCK(elem) (GST_BASE_SRC(elem)->live_lock)
/* TODO keep the last search result to be able to continue
GList *last_value; // last search result, can be used for incremental searches
*/
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
} GstControlledProperty;
#define GST_CONTROLLED_PROPERTY(obj) ((GstControlledProperty *)(obj))
GList *properties; // List of GstControlledProperty
GMutex *lock; // Secure property access, elements will access from threads
GObject *object; // the object we control
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
};
struct _GstControllerClass
{
GObjectClass parent_class;
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
};
GType gst_controller_get_type (void);
/* TODO keep the last search result to be able to continue
GList *last_value; // last search result, can be used for incremental searches
*/
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
} GstControlledProperty;
#define GST_CONTROLLED_PROPERTY(obj) ((GstControlledProperty *)(obj))
GList *properties; // List of GstControlledProperty
GMutex *lock; // Secure property access, elements will access from threads
GObject *object; // the object we control
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
};
struct _GstControllerClass
{
GObjectClass parent_class;
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
};
GType gst_controller_get_type (void);
g_param_spec_boolean ("dump", "Dump", "Dump received bytes to stdout",
DEFAULT_DUMP, G_PARAM_READWRITE));
+ /**
+ * GstFakeSink::handoff:
+ * @fakesink: the fakesink instance
+ * @buffer: the buffer that just has been received
+ * @pad: the pad that received it
+ *
+ * This signal gets emitted before unreffing the buffer.
+ */
gst_fake_sink_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstFakeSinkClass, handoff), NULL, NULL,
"True if the element cannot produce data in PAUSED", FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ /**
+ * GstFakeSrc::handoff:
+ * @fakesrc: the fakesrc instance
+ * @buffer: the buffer that will be pushed
+ * @pad: the pad that will sent it
+ *
+ * This signal gets emitted before sending the buffer.
+ */
gst_fake_src_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstFakeSrcClass, handoff), NULL, NULL,
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_queue_get_property);
/* signals */
+ /**
+ * GstQueue::underrun:
+ * @queue: the queue instance
+ *
+ * Reports that the buffer became empty (underrun).
+ * A buffer is empty if the total amount of data inside it (num-buffers, time,
+ * size) is lower than the boundary values which can be set through the GObject
+ * properties.
+ */
gst_queue_signals[SIGNAL_UNDERRUN] =
g_signal_new ("underrun", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GstQueueClass, underrun), NULL, NULL,
g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+ /**
+ * GstQueue::running:
+ * @queue: the queue instance
+ *
+ * Reports that enough (min-threshold) data is in the queue. Use this signal
+ * together with the underrun signal to pause the pipeline on underrun and wait
+ * for the queue to fill-up before resume playback.
+ */
gst_queue_signals[SIGNAL_RUNNING] =
g_signal_new ("running", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GstQueueClass, running), NULL, NULL,
g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+ /**
+ * GstQueue::overrun:
+ * @queue: the queue instance
+ *
+ * Reports that the buffer became full (overrun).
+ * A buffer is full if the total amount of data inside it (num-buffers, time,
+ * size) is higher than the boundary values which can be set through the GObject
+ * properties.
+ */
gst_queue_signals[SIGNAL_OVERRUN] =
g_signal_new ("overrun", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GstQueueClass, overrun), NULL, NULL,