static void
group_error_handler (GstOptSchedulerGroup *group)
{
+ GST_INFO (GST_CAT_SCHEDULING, "group %p has errored", group);
+
chain_group_set_enabled (group->chain, group, FALSE);
group->chain->sched->state = GST_OPT_SCHEDULER_STATE_ERROR;
}
case GST_STATE_PAUSED_TO_PLAYING:
/* an element withut a group has to be an unlinked src, sink
* filter element */
- if (!group)
+ if (!group) {
+ GST_INFO (GST_CAT_SCHEDULING, "element \"%s\" has no group", GST_ELEMENT_NAME (element));
res = GST_STATE_FAILURE;
+ }
/* else construct the scheduling context of this group and enable it */
else {
setup_group_scheduler (osched, group);
/* if there is still a link, we don't need to break this group */
if (still_link1 && still_link2) {
GST_INFO (GST_CAT_SCHEDULING, "elements still have links with other elements in the group");
-
- /* FIXME, need to check for breaking up the group */
+ /* FIXME it's possible that we have to break the chain */
return;
}
}
/* don't schedule any more chains when in error */
- if (osched->state == GST_OPT_SCHEDULER_STATE_ERROR)
+ if (osched->state == GST_OPT_SCHEDULER_STATE_ERROR) {
+ GST_INFO (GST_CAT_SCHEDULING, "scheduler %p is in error", sched);
break;
+ }
}
/* at this point it's possible that the scheduler state is