Original commit message from CVS:
Slighly take a different approach for object destruction, using the real
_remove functions so that the scheduler has a chance to destroy its state
too.
This breaks the thread with ghostpads destruction case for now.
Original commit message from CVS:
gstinfo.c: one more check to make sure DEBUG_FUNCPTR_NAME doesn't go south
gstpad.c: debugging changes
gsttypefind.c: moved gst_pad_set_caps to *before* the caps_changed signal
gstautoplugcache.c: added refcounting around signal_emit, and debug updates
gstautoplugger.c: added code to remove the autoplugcache when done
Original commit message from CVS:
slightly different refcount handling. the pad shutdown function doesn't
remove the pad from the parent because the parent is needed in the destroy
function.
Original commit message from CVS:
cothreads.c: added a comment on one of the tests
gstbin.h: added the GST_BIN_SELF_SCHEDULABLE flag
gstelement.c: cleaned up the _change_state function a little
gstobject.c: improved the refcounting DEBUGs
gstpad.c: moved the connected signal to after capsnego,
added the caps_nego_failed signal
gstpad.h: added the caps_nego_failed signal funcptr
gstscheduler.c: added the GST_BIN_SELF_SCHEDULABLE exception
gsttypefind.c: added check code around signal_emit to deal with the case
where the signal's handler shuts down the element
gstautoplugcache.c: added the first_buffer signal and caps_proxy arg
gstautoplugger.c: significant rework, it functions quite nicely actually
Original commit message from CVS:
Add the GST_ELEMENT_NO_ENTRY flag, which when set will force the scheduler
to skip over an element as an option for the first cothread jump. This is
needed because libraries like mad don't ever seem to want to quit. Thus
they ignore COTHREAD_STOPPING and can't be trusted to be the entry.
Original commit message from CVS:
Some minor DEBUG cleanups, renamed the various scheduler-specific routines
to actually be called gst_schedule_ instead of gst_bin_.
Original commit message from CVS:
Converted the DEBUG system to look like the INFO system, with a function
pointer that can be replaced. Not done with everything, since it seems
that we need an ERROR system plus a FATAL error, or maybe just an ERROR
system with a severity, and depending on this the DEBUG system might again
be changed to have a single or at least fewer handlers.
Also did a bit of work fixing up the actual DEBUG and INFO commands
scattered throughout the code. We still have over 500 of these in gst/*.c
alone...
Original commit message from CVS:
- fixed configure.in %VAR stuff
- fixed gstreamer.pc.in description string
- fixed up incremental scheduling some more
- updated the GST_DEBUG_FUNCPTR code to no longer need a hash
- minor updates to DEBUG colorization
- new test/mpeg2parse4.c
Original commit message from CVS:
- Updated colorization some more (pthread and cothread id is in color)
- Added some minor debug to help trace mp1vid segfaults
Original commit message from CVS:
Updated the colorization a bit more, and did a significant pass through all
the other code to change categories on DEBUG and INFO statements to be
correct, and not simply zero. There are still more, but this is a good
first pass.
Original commit message from CVS:
gstbin.c: commented out the requirement that a bin be !PLAYING to add
gstthread.c: fixed an old failed merge that locked the same mutex twice
...in a row
Original commit message from CVS:
Added element-level locking support, implemented for cothreads with a mutex
held whenever an element is actually currently running. This should be done
with atomic variables eventually, but the best I can find is to use
<asm/spinlock.h> from the kernel, which brings in too much for my taste.
Also increased cothread stack size to 32KB and max cothread count to 64,
which fits within the default pthread 2MB stack. It would probably be good
to do a pthread_attr_getstacksize() to verify that it's 2MB, and if
linuxthreads had a pthread_attr_setstacksize(), we could remove these
limits.