Original commit message from CVS:
Added interrupt back in spider, make opt scheduler schedule next chain
on interrupt (like basic did)
gst_object_ref (GST_OBJECT (cache));
g_signal_emit (G_OBJECT(cache), gst_autoplugcache_signals[CACHE_EMPTY], 0, NULL);
if (GST_STATE(cache) != oldstate) {
gst_object_ref (GST_OBJECT (cache));
g_signal_emit (G_OBJECT(cache), gst_autoplugcache_signals[CACHE_EMPTY], 0, NULL);
if (GST_STATE(cache) != oldstate) {
- gst_object_ref (GST_OBJECT (cache));
+ gst_object_unref (GST_OBJECT (cache));
GST_DEBUG(GST_CAT_AUTOPLUG, "state changed during signal, aborting");
GST_DEBUG(GST_CAT_AUTOPLUG, "state changed during signal, aborting");
- gst_element_yield (GST_ELEMENT (cache));
return;
}
gst_object_unref (GST_OBJECT (cache));
return;
}
gst_object_unref (GST_OBJECT (cache));
gst_spider_identity_dumb_loop (ident);
return;
}
gst_spider_identity_dumb_loop (ident);
return;
}
+
+ gst_element_interrupt (GST_ELEMENT (ident));
}
/* This loop function is only needed when typefinding.
*/
}
/* This loop function is only needed when typefinding.
*/
- /* don't schedule any more chains when interrupted or in error */
- if (osched->state != GST_OPT_SCHEDULER_STATE_RUNNING)
+ /* don't schedule any more chains when in error */
+ if (osched->state == GST_OPT_SCHEDULER_STATE_ERROR)