diff --git a/ChangeLog b/ChangeLog index 25aa9aaf56..dfecf353ab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2004-07-21 Benjamin Otte + + * gst/schedulers/entryscheduler.c: + (gst_entry_scheduler_loop_wrapper), + (gst_entry_scheduler_chain_wrapper), + (gst_entry_scheduler_get_wrapper): + reset the state when the cothread starts, so we don't get assertion + failures on restarting of cothreads + 2004-07-20 Benjamin Otte * gst/gstelement.c: (gst_element_link_pads_filtered): diff --git a/gst/schedulers/entryscheduler.c b/gst/schedulers/entryscheduler.c index fd86bfbfda..9f1db2f924 100644 --- a/gst/schedulers/entryscheduler.c +++ b/gst/schedulers/entryscheduler.c @@ -277,6 +277,7 @@ gst_entry_scheduler_loop_wrapper (int argc, char **argv) CothreadPrivate *priv = (CothreadPrivate *) argv; GstElement *element = priv->element; + priv->wait = WAIT_FOR_NOTHING; do { g_assert (priv->wait == WAIT_FOR_NOTHING); GST_LOG_OBJECT (SCHED (element), "calling loopfunc for element %s", @@ -332,6 +333,7 @@ gst_entry_scheduler_chain_wrapper (int argc, char **argv) CothreadPrivate *priv = (CothreadPrivate *) argv; GstElement *element = priv->element; + priv->wait = WAIT_FOR_PADS; do { GstRealPad *pad = priv->schedule_pad; @@ -397,6 +399,7 @@ gst_entry_scheduler_get_wrapper (int argc, char **argv) CothreadPrivate *priv = (CothreadPrivate *) argv; GstElement *element = priv->element; + priv->wait = WAIT_FOR_PADS; do { GstRealPad *pad = priv->schedule_pad;