mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
gst/gstelement.c: add documentation about a gobject quirk where the object hasn't the correct class pointer set on in...
Original commit message from CVS: * gst/gstelement.c: add documentation about a gobject quirk where the object hasn't the correct class pointer set on initialization * gst/schedulers/gstbasicscheduler.c: (gst_basic_scheduler_src_wrapper): make sure to not run into an infinite loop
This commit is contained in:
parent
58a5ccec56
commit
0c01133df9
3 changed files with 20 additions and 3 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2004-03-24 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
|
* gst/gstelement.c:
|
||||||
|
add documentation about a gobject quirk where the object hasn't the
|
||||||
|
correct class pointer set on initialization
|
||||||
|
* gst/schedulers/gstbasicscheduler.c:
|
||||||
|
(gst_basic_scheduler_src_wrapper):
|
||||||
|
make sure to not run into an infinite loop
|
||||||
|
|
||||||
2004-03-22 Benjamin Otte <otte@gnome.org>
|
2004-03-22 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
* gst/gstutils.c: (gst_util_dump_mem):
|
* gst/gstutils.c: (gst_util_dump_mem):
|
||||||
|
|
|
@ -1398,6 +1398,9 @@ gst_element_class_set_details (GstElementClass * klass,
|
||||||
*
|
*
|
||||||
* Retrieves a list of the pad templates associated with @element_class. The
|
* Retrieves a list of the pad templates associated with @element_class. The
|
||||||
* list must not be modified by the calling code.
|
* list must not be modified by the calling code.
|
||||||
|
* <note>If you use this function in the #GInstanceInitFunc of an object class
|
||||||
|
* that has subclasses, make sure to pass the g_class parameter of the
|
||||||
|
* #GInstanceInitFunc here.</note>
|
||||||
*
|
*
|
||||||
* Returns: the #GList of padtemplates.
|
* Returns: the #GList of padtemplates.
|
||||||
*/
|
*/
|
||||||
|
@ -1416,6 +1419,9 @@ gst_element_class_get_pad_template_list (GstElementClass * element_class)
|
||||||
* @name: the name of the #GstPadTemplate to get.
|
* @name: the name of the #GstPadTemplate to get.
|
||||||
*
|
*
|
||||||
* Retrieves a padtemplate from @element_class with the given name.
|
* Retrieves a padtemplate from @element_class with the given name.
|
||||||
|
* <note>If you use this function in the #GInstanceInitFunc of an object class
|
||||||
|
* that has subclasses, make sure to pass the g_class parameter of the
|
||||||
|
* #GInstanceInitFunc here.</note>
|
||||||
*
|
*
|
||||||
* Returns: the #GstPadTemplate with the given name, or NULL if none was found.
|
* Returns: the #GstPadTemplate with the given name, or NULL if none was found.
|
||||||
* No unreferencing is necessary.
|
* No unreferencing is necessary.
|
||||||
|
|
|
@ -407,11 +407,13 @@ gst_basic_scheduler_src_wrapper (int argc, char **argv)
|
||||||
GList *pads;
|
GList *pads;
|
||||||
GstRealPad *realpad;
|
GstRealPad *realpad;
|
||||||
GstData *data = NULL;
|
GstData *data = NULL;
|
||||||
|
gboolean inf_loop;
|
||||||
G_GNUC_UNUSED const gchar *name = GST_ELEMENT_NAME (element);
|
G_GNUC_UNUSED const gchar *name = GST_ELEMENT_NAME (element);
|
||||||
|
|
||||||
GST_DEBUG ("entering src wrapper of element %s", name);
|
GST_DEBUG ("entering src wrapper of element %s", name);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
inf_loop = TRUE;
|
||||||
pads = element->pads;
|
pads = element->pads;
|
||||||
while (pads) {
|
while (pads) {
|
||||||
|
|
||||||
|
@ -421,8 +423,8 @@ gst_basic_scheduler_src_wrapper (int argc, char **argv)
|
||||||
realpad = GST_REAL_PAD (pads->data);
|
realpad = GST_REAL_PAD (pads->data);
|
||||||
|
|
||||||
pads = g_list_next (pads);
|
pads = g_list_next (pads);
|
||||||
if (GST_RPAD_DIRECTION (realpad) == GST_PAD_SRC
|
if (GST_RPAD_DIRECTION (realpad) == GST_PAD_SRC) {
|
||||||
&& GST_PAD_IS_USABLE (realpad)) {
|
inf_loop = FALSE;
|
||||||
GST_CAT_DEBUG (debug_dataflow, "calling _getfunc for %s:%s",
|
GST_CAT_DEBUG (debug_dataflow, "calling _getfunc for %s:%s",
|
||||||
GST_DEBUG_PAD_NAME (realpad));
|
GST_DEBUG_PAD_NAME (realpad));
|
||||||
g_return_val_if_fail (GST_RPAD_GETFUNC (realpad) != NULL, 0);
|
g_return_val_if_fail (GST_RPAD_GETFUNC (realpad) != NULL, 0);
|
||||||
|
@ -434,7 +436,7 @@ gst_basic_scheduler_src_wrapper (int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (!GST_ELEMENT_IS_COTHREAD_STOPPING (element));
|
} while (!GST_ELEMENT_IS_COTHREAD_STOPPING (element) && !inf_loop);
|
||||||
|
|
||||||
GST_FLAG_UNSET (element, GST_ELEMENT_COTHREAD_STOPPING);
|
GST_FLAG_UNSET (element, GST_ELEMENT_COTHREAD_STOPPING);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue