gst/schedulers/gstoptimalscheduler.c: Also ref/unref decoupled elements before iterating the group since they are not...

Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(remove_from_group), (schedule_group), (normalize_group),
(gst_opt_scheduler_iterate):
Also ref/unref decoupled elements before iterating the
group since they are not added to the list of elements.
This commit is contained in:
Wim Taymans 2005-01-17 16:30:42 +00:00
parent 341f45589c
commit c6b82b338b
2 changed files with 18 additions and 1 deletions

View file

@ -1,3 +1,11 @@
2005-01-17 Wim Taymans <wim@fluendo.com>
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(remove_from_group), (schedule_group), (normalize_group),
(gst_opt_scheduler_iterate):
Also ref/unref decoupled elements before iterating the
group since they are not added to the list of elements.
2005-01-17 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* docs/manual/highlevel-components.xml:

View file

@ -1141,8 +1141,17 @@ schedule_group (GstOptSchedulerGroup * group)
return FALSE;
} else {
GSList *l, *lcopy;
GstElement *entry = NULL;
lcopy = g_slist_copy (group->elements);
/* also add entry point, this is made so that decoupled elements
* are also reffed since they are not added to the list of group
* elements. */
if (group->entry && GST_ELEMENT_IS_DECOUPLED (group->entry)) {
entry = group->entry;
gst_object_ref (GST_OBJECT (entry));
}
for (l = lcopy; l; l = l->next) {
GstElement *e = (GstElement *) l->data;
@ -1161,8 +1170,8 @@ schedule_group (GstOptSchedulerGroup * group)
gst_object_unref (GST_OBJECT (e));
}
gst_object_unref (GST_OBJECT (entry));
g_slist_free (lcopy);
}
return TRUE;
#endif