gstreamer/gst
Erik Walthinsen 29d567ba23 Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ...
Original commit message from CVS:
Changes made to the DEBUG system.  New header file gstdebug.h holds the
stuff to keep it out of gst.h's hair.  DEBUG prints out the process id,
cothread id, source filename and line number.  Two new macros DEBUG_ENTER
and DEBUG_LEAVE are used to show the entry and exit of a given function.
This eventually might be used to construct call trace graphs, even taking
cothreads into account.  This would be quite useful in visualizing the
scheduling mechanism.

Minor changes to various debug messages.

Also sitting in gstdebug.h is a prototypical DEBUG_ENTER that's capable of
performing DEBUG_LEAVE automatically.  It does this by utilizing a
little-known GCC extension that allows one to call a function with the
same parameters as the current function.  The macro uses this to basically
call itself.  A boolean is used to ensure that when it calls itself it
actually runs the body of the function.  In the meantime it prints stuff
out before and after the real function, as well as constructing a
debugging string.  This can be used eventually to provide call-wide data
on the DEBUG lines, instead of having to replicate data on each call to
DEBUG.  More research is needed into how this would most cleanly be fit
into some other chunk of code, like GStreamer (I think of this DEBUG trick
as a separate project, sorta).

Unfortunately, the aforementioned DEBUG trick interacts quite poorly with
cothreads.  Almost any time it's used in a function that has anything
remotely to do with a cothread context (as in, it runs in one), a segfault
results from the __builtin_apply call, which is the heart of the whole
thing.  If someone who really knows assembly could analyze the resulting
code to see what's really going on, we might find a way to fix either the
macro or the cothreads (I'm thinking that there's something we missed in
constructing the cothreads themselves) so this works in all cases.

In the meantime, please insert both DEBUG_ENTER and DEBUG_LEAVE in your
functions.  Be sure to put DEBUG_ENTER after your variable declarations
and before any functional code, not to put the function name in any DEBUG
strings (it's already there, trust me), and put a DEBUG_LEAVE if you care
enough.

Changes are going to happen in the way DEBUGs and other printouts occur,
so stay tuned.
2000-12-04 09:35:08 +00:00
..
elements Code Cleanups 2000-11-25 14:18:47 +00:00
meta State change fixes in the threading element. 2000-08-14 10:55:35 +00:00
types Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
.gitignore OK, I think I've got all the .cvsignore stuff taken care of, though we'll want to fine-tune things as we go, of cours... 2000-01-31 03:36:35 +00:00
cothreads.c Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... 2000-12-04 09:35:08 +00:00
cothreads.h Enhanced debugging by making DEBUG() print out the cothread ID as well as the process ID. cothread_getcurrent return... 2000-12-03 00:17:52 +00:00
gst.c Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gst.h Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... 2000-12-04 09:35:08 +00:00
gstarch.h Docs updates. 2000-11-11 15:13:50 +00:00
gstbin.c gstbin.c: modified so create_plan occurs after the state change of all the child elements. 2000-11-23 08:13:43 +00:00
gstbin.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstbuffer.c Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... 2000-12-04 09:35:08 +00:00
gstbuffer.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstbufferpool.c Docs updates. 2000-11-11 15:13:50 +00:00
gstbufferpool.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstcaps.c Implemented real Caps checking. 2000-12-03 20:15:15 +00:00
gstcaps.h Implemented real Caps checking. 2000-12-03 20:15:15 +00:00
gstcapsprivate.h Added multiple types to the pads. 2000-12-03 17:51:29 +00:00
gstclock.c Docs updates. 2000-11-11 15:13:50 +00:00
gstclock.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstconnection.c Docs updates. 2000-11-11 15:13:50 +00:00
gstconnection.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstcpu.c Docs updates. 2000-11-11 15:13:50 +00:00
gstcpu.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstcpuid_i386.s Added CPU detection. 2000-09-12 18:13:48 +00:00
gstdebug.h Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... 2000-12-04 09:35:08 +00:00
gstelement.c Fixed a dumb mistake: in gst_element_set_loop_function, it was forcing the cothread's entry function to change. This ... 2000-11-24 22:28:19 +00:00
gstelement.h Closed 22145 - gstelement.c: support hotswapping of loopfunc 2000-11-23 21:49:09 +00:00
gstelementfactory.c More Docs updates. 2000-10-25 19:09:53 +00:00
gstextratypes.c Docs updates. 2000-11-11 15:13:50 +00:00
gstextratypes.h Added extra Gtk types for better editor properties (FILENAME, enums) 2000-10-11 19:30:07 +00:00
gstfilter.c Docs updates. 2000-11-11 15:13:50 +00:00
gstfilter.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gsti386.h Docs updates. 2000-11-11 15:13:50 +00:00
gstlog.h initial checkin 2000-01-30 09:03:00 +00:00
gstmeta.c Docs updates. 2000-11-11 15:13:50 +00:00
gstmeta.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstobject.c Documentation updates. All standard library objects and standard elements are documented. Modified some of the elemen... 2000-03-27 19:53:43 +00:00
gstobject.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstpad.c Added multiple types to the pads. 2000-12-03 17:51:29 +00:00
gstpad.h Added multiple types to the pads. 2000-12-03 17:51:29 +00:00
gstpipeline.c Added multiple types to the pads. 2000-12-03 17:51:29 +00:00
gstpipeline.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstplugin.c Added a check to see if the plugin actually exists before even bothering to try to load it. Saves a fair amount of d... 2000-12-04 09:32:43 +00:00
gstplugin.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstppc.h Docs updates. 2000-11-11 15:13:50 +00:00
gstsink.c Docs updates. 2000-11-11 15:13:50 +00:00
gstsink.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstsrc.c Docs updates. 2000-11-11 15:13:50 +00:00
gstsrc.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gsttee.c Various fixes for the build/install problems update to the docs/manual. Added a simple helloworld example. 2000-08-18 20:35:48 +00:00
gsttee.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstthread.c Docs updates. 2000-11-11 15:13:50 +00:00
gstthread.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gsttrace.c Removed bad asm call for rdts. Need to fix this... 2000-08-18 22:15:58 +00:00
gsttrace.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gsttype.c Docs updates. 2000-11-11 15:13:50 +00:00
gsttype.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstutils.c Added seeking to the avi decoder by implementing pull_region. 2000-11-06 00:15:51 +00:00
gstutils.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
gstxml.c More Docs updates. 2000-10-25 19:09:53 +00:00
gstxml.h Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast. 2000-11-04 18:54:07 +00:00
Makefile.am Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... 2000-12-04 09:35:08 +00:00
ROADMAP A bunch more changes to clean up build/make dist issues, as well as a spec file, -config file, .m4, etc. Next step... 2000-01-31 06:46:18 +00:00