This is an attempt at not segfaulting on errors but reporting some usefull info instead.
authorWim Taymans <wim.taymans@gmail.com>
Sat, 22 Dec 2001 21:18:17 +0000 (21:18 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sat, 22 Dec 2001 21:18:17 +0000 (21:18 +0000)
commit087dee1f620d42d0680833adb08cd2bf3d298711
tree73da960a4f3dd092935d0264ac6f9fd00c1ef7e2
parent11456df8883d2e69eb1f000c3f9ed32dc5008713
This is an attempt at not segfaulting on errors but reporting some usefull info instead.

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.
29 files changed:
gst/autoplug/gstautoplugcache.c
gst/cothreads.c
gst/elements/gstaggregator.c
gst/elements/gstfakesrc.c
gst/elements/gstfilesrc.c
gst/elements/gstidentity.c
gst/gstbin.c
gst/gstbin.h
gst/gstbuffer.c
gst/gstbuffer.h
gst/gstelement.c
gst/gstelement.h
gst/gstobject.h
gst/gstpad.c
gst/gstpad.h
gst/gstparse.c
gst/gstqueue.c
gst/gstqueue.h
gst/gstscheduler.c
gst/gstscheduler.h
gst/gstthread.c
gst/gsttypefind.c
gst/schedulers/gstbasicscheduler.c
plugins/elements/gstaggregator.c
plugins/elements/gstfakesrc.c
plugins/elements/gstfilesrc.c
plugins/elements/gstidentity.c
plugins/elements/gstqueue.c
plugins/elements/gstqueue.h