• Wim Taymans's avatar
    This is an attempt at not segfaulting on errors but reporting some usefull info instead. · 087dee1f
    Wim Taymans authored
    Original commit message from CVS:
    This is an attempt at not segfaulting on errors but reporting some
    usefull info instead.
    - bin changes so errors can propagate.
    - changed the _FAST macros to _CAST because that is what they do.
    - removed all references to cothreads out of the core, they are
    really a scheduler issue, handler with a sched_private gpointer.
    - added a live buffer count, for debugging buffer leaks.
    - added error checking in gst_scheduler_state_transition this solves the
    "out of cothreads" problem.
    - GST_ELEMENT_NO_ENTRY == GST_ELEMENT_INFINITE_LOOP
    - added 2 private element flasg for use by the scheduler
    (_COTHREAD_STOPPING) is now
    - added scheduler entry points:
    - _yield : to create possible scheduling points.
    - _interrupt: to stop execution of an element.
    - _error: to signal en error condition to the scheduler.
    - improved error messages for pads.
    - signal gst_element_error where appropriate.
    - added the a new bin to the parent before entering it so one can reference
    its children.
    - queue memleak fixes on dispose.
    - added possible deadlock detection in queue (turned off be default)
    - GstBasicScheduler is a real class of its own now, hiding its internal
    variables.
    - GST_ELEMENT_IS_COTHREAD_STOPPING is gone. either call explicit _yield
    operations, or make a sane loop.
    - Better state change handling in filesrc. Better error reporting/recovery
    too.
    - updated core plugins.
    - detect non decoupled elements on scheduler boundries and error.
    087dee1f
gstelement.h 11.2 KB