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.
Original commit message from CVS:
added a set flag to end of gst_thread_signal_thread and gst_signal_wait_thread
to indicate whether signal should set flag or unset flag, and whether wait
should wait for flag to be set or to be unset. this is needed for
PLAYING_TO_PAUSE where STATE_SPINNING needs to be signalled to be unset
Original commit message from CVS:
Fixed bug with reconfig, where switching back into an element landed it
in code that still thought it was connected to the previous element. It
now checks to see if the peer's peer has changed, and deal accordingly.
Original commit message from CVS:
Significant progress. Now able to do most operations live, without any
failure. tests/incsched.c currently faults at the last iteration, not
yet sure why.