gst/schedulers/gstoptimalscheduler.c: Do not try to migrate decoupled elements to a new group since they are not adde...

Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c:
(gst_opt_scheduler_pad_link), (group_elements_set_visited),
(element_get_reachables_func), (element_get_reachables),
(debug_element), (rechain_group), (group_migrate_connected),
(gst_opt_scheduler_pad_unlink):
Do not try to migrate decoupled elements to a new group since
they are not added to groups.
This commit is contained in:
Wim Taymans 2004-07-09 08:25:42 +00:00
parent 87de7f9dcc
commit 19fac086bf
2 changed files with 24 additions and 1 deletions

View file

@ -1,3 +1,13 @@
2004-07-09 Wim Taymans <wim@fluendo.com>
* gst/schedulers/gstoptimalscheduler.c:
(gst_opt_scheduler_pad_link), (group_elements_set_visited),
(element_get_reachables_func), (element_get_reachables),
(debug_element), (rechain_group), (group_migrate_connected),
(gst_opt_scheduler_pad_unlink):
Do not try to migrate decoupled elements to a new group since
they are not added to groups.
2004-07-08 Benjamin Otte <otte@gnome.org> 2004-07-08 Benjamin Otte <otte@gnome.org>
* gst/gstelement.c: (gst_element_error_func): * gst/gstelement.c: (gst_element_error_func):

View file

@ -2275,15 +2275,28 @@ group_migrate_connected (GstOptScheduler * osched, GstElement * element,
GList *connected, *c; GList *connected, *c;
GstOptSchedulerGroup *new_group = NULL; GstOptSchedulerGroup *new_group = NULL;
GstOptSchedulerChain *chain; GstOptSchedulerChain *chain;
gint len;
if (GST_ELEMENT_IS_DECOUPLED (element)) {
/* the element is decoupled and is therefore not in the group */
return NULL;
}
GST_LOG ("migrate connected elements to new group"); GST_LOG ("migrate connected elements to new group");
connected = element_get_reachables (element, group, brokenpad); connected = element_get_reachables (element, group, brokenpad);
GST_LOG ("elements to move to new group:"); GST_LOG ("elements to move to new group:");
g_list_foreach (connected, (GFunc) debug_element, NULL); g_list_foreach (connected, (GFunc) debug_element, NULL);
if (g_list_length (connected) == 1) { len = g_list_length (connected);
if (len == 0) {
g_warning ("(internal error) found lost element %s",
gst_element_get_name (element));
return NULL;
} else if (len == 1) {
remove_from_group (group, GST_ELEMENT (connected->data)); remove_from_group (group, GST_ELEMENT (connected->data));
GST_LOG ("not migrating to new group as the group is empty"); GST_LOG ("not migrating to new group as the group is empty");
g_list_free (connected);
return NULL; return NULL;
} }