Commit graph

82 commits

Author SHA1 Message Date
Thomas Vander Stichele 3a5b408709 useful comments change thread -> cothread in varnames where it's applicable code cleanups
Original commit message from CVS:
* useful comments
* change thread -> cothread in varnames where it's applicable
* code cleanups
2002-09-12 18:56:31 +00:00
Thomas Vander Stichele 76d31f5af1 readable cleanups
Original commit message from CVS:
readable cleanups
2002-08-13 14:11:33 +00:00
Thomas Vander Stichele c1e2b0009b fix for older glibc's
Original commit message from CVS:
fix for older glibc's
2002-08-13 13:56:05 +00:00
Wim Taymans 1975b199d2 Turn some g_prints into g_warnings as that's what they really are
Original commit message from CVS:
Turn some g_prints into g_warnings as that's what they really are
2002-07-28 01:04:33 +00:00
Andy Wingo efafdb2aa6 be more lenient when loading unconnected pads
Original commit message from CVS:
be more lenient when loading unconnected pads
2002-07-12 19:13:19 +00:00
Thomas Vander Stichele a64e400a97 lioux's virtual patch
Original commit message from CVS:
lioux's virtual patch
2002-07-11 21:38:23 +00:00
Wim Taymans 80c371342b This one removes the unused code..
Original commit message from CVS:
This one removes the unused code..
2002-07-08 19:10:11 +00:00
Christian Schaller cc682cae6c commented out the munmap stuff again
Original commit message from CVS:
commented out the munmap stuff again
2002-06-29 16:26:47 +00:00
Thomas Vander Stichele a155db2bfb more protective programming cothread 0 cleans up higher cothreads if they're still around use a magic number to prote...
Original commit message from CVS:
more protective programming
cothread 0 cleans up higher cothreads if they're still around
use a magic number to protect against mem corruption in the struct
flames welcome
2002-06-28 10:58:05 +00:00
Thomas Vander Stichele 781f489e87 no newlines
Original commit message from CVS:
no newlines
2002-06-27 22:24:36 +00:00
Thomas Vander Stichele aa55a0450d no newlines
Original commit message from CVS:
no newlines
2002-06-27 22:23:51 +00:00
Thomas Vander Stichele ef2f6e1fc4 ok, my latest added error checking and stuff this reverts uraeus's patch but should tell us what goes wrong with munmap
Original commit message from CVS:
ok, my latest added error checking and stuff
this reverts uraeus's patch but should tell us what goes wrong with munmap
2002-06-27 22:17:17 +00:00
Christian Schaller 7cc370b0bf Fixes suggested by thomasvs to get rhythmbox working with basic threads
Original commit message from CVS:
Fixes suggested by thomasvs to get rhythmbox working with basic threads

- int res;
+ int res = 0;

-  res = munmap ((void *) thread, COTHREAD_STACKSIZE);
+/*    res = munmap ((void *) thread, COTHREAD_STACKSIZE); */
2002-06-27 21:35:56 +00:00
Thomas Vander Stichele 8433fe5775 some debug info remove the preventive munmap reinstate the other munmap for cothread stocks which really should be th...
Original commit message from CVS:
some debug info
remove the preventive munmap
reinstate the other munmap for cothread stocks which really should be there IMO
2002-06-27 15:52:13 +00:00
Thomas Vander Stichele b7bc06aee5 ok, this seems to be the right fix for the basic scheduler.
Original commit message from CVS:
ok, this seems to be the right fix for the basic scheduler.
I'd appreciate it if :
a) someone looks over these minimal changes and tells me if they're done
in the right way (especially the alignment argument ;))
b) others run lots of pipes with basic and tell me if they still have
issues
If all goes well I want to revert to the basic scheduler and do a release
2002-06-26 08:22:17 +00:00
Thomas Vander Stichele f4046ced1c hahaha
Original commit message from CVS:
hahaha
2002-06-25 12:09:32 +00:00
Thomas Vander Stichele 1ecc22c610 blind flying adding more debug output cleaning up according to man pages
Original commit message from CVS:
blind flying
adding more debug output
cleaning up according to man pages
2002-06-25 12:08:10 +00:00
Wim Taymans 32f702aa20 Better error handling when mmap'ing
Original commit message from CVS:
Better error handling when mmap'ing
2002-06-15 16:12:20 +00:00
Wim Taymans e4637a0a82 Some cleanups, more debugging info
Original commit message from CVS:
Some cleanups, more debugging info
2002-05-29 14:59:48 +00:00
Thomas Vander Stichele de6c6bcc5d doc fixes
Original commit message from CVS:
doc fixes
2002-04-19 10:26:56 +00:00
Wim Taymans d7a5d173c8 Documentation updates
Original commit message from CVS:
Documentation updates
Added dump to identity
Fix some warnings in gstelement
2002-03-31 14:04:50 +00:00
Andy Wingo ed9b628168 filter newlines out of GST_DEBUG statements to reflect new core behavior fixes to adder's caps, again
Original commit message from CVS:
* filter newlines out of GST_DEBUG statements to reflect new core behavior
* fixes to adder's caps, again
2002-03-24 22:07:09 +00:00
Benjamin Otte aadf99137f make sure cothread->priv is NULL when uninited because we now check it (added debugging line to gst_bin_remove while ...
Original commit message from CVS:
make sure cothread->priv is NULL when uninited because we now check it
(added debugging line to gst_bin_remove while debugging)
2002-02-24 19:08:30 +00:00
Wim Taymans 929b4bd3d1 Added a private field to the cothread state.
Original commit message from CVS:
Added a private field to the cothread state.
2002-02-23 13:41:17 +00:00
Wim Taymans 90355128b5 - Removed deprecated buffer flags.
Original commit message from CVS:
- Removed deprecated buffer flags.
- removed gst_element_signal_eos, replaced with gst_element_set_eos
to set the object to PAUSED, signal an eos event etc..
- small updates to documentation
- repair some plugins
2001-12-28 20:20:26 +00:00
Wim Taymans e7f54b1e74 - Added a function to get the currently executing cothread
Original commit message from CVS:
- Added a function to get the currently executing cothread
- Removed some useless includes
- _interrupt now returns a boolean so the behaviour after the interrupt
can be controlled by the scheduler.
- Added a better way to set/get the default scheduler.
- make thread and pipeline get the default scheduler.
2001-12-27 00:47:41 +00:00
Wim Taymans bd128c199c Tee Fixes. added cothread_stop (not used) improved the pad event dispatcher.
Original commit message from CVS:
Tee Fixes.
added cothread_stop (not used)
improved the pad event dispatcher.
added an event_received signal on the pad.
do less state changes in the autoplugger.
small scheduler fix.
2001-12-25 02:15:46 +00:00
Wim Taymans c05a4511cd Removed the munmap for now
Original commit message from CVS:
Removed the munmap for now
2001-12-23 23:36:44 +00:00
Wim Taymans 6c538d527b Fix an event leak
Original commit message from CVS:
Fix an event leak
Ne need to save signals on longjmp
2001-12-23 14:50:44 +00:00
Wim Taymans bdd6df925e Better cothread cleanup
Original commit message from CVS:
Better cothread cleanup
2001-12-23 14:27:48 +00:00
Wim Taymans 467035ce70 Never destroy the current cothread.
Original commit message from CVS:
Never destroy the current cothread.
Don't try to signal the scheduler if we don't have one
2001-12-22 23:19:17 +00:00
Wim Taymans 087dee1f62 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.
2001-12-22 21:18:17 +00:00
Wim Taymans f5affde61c - Reclaim cothread state even if the cothread was never activated after the free.
Original commit message from CVS:
- Reclaim cothread state even if the cothread was never activated after
the free.
- fix the bin state change when there are no more children.
- use a real method to signal the parent bin of a state change.
- move the state change policy in the scheduler.
- remove the unused and ridiculous state change event
- don't free the cothread state when the element is disabled. only free it
when the element is removed from the scheduler.
2001-12-20 20:03:10 +00:00
Wim Taymans a8b1346857 cothread cleanup.
Original commit message from CVS:
cothread cleanup.
- removed some old code.
- ran the thing through indent
- rename cothread_init/free to cothread_context_init/free
- implement cothread_free/destroy to clear the cothread_state slot
- make cothread_init reuse empty slots.
minor cleanups in error reporting (gstpad, gstelement)
code cleanup in gstthread
make unexpected state changes in gstthread less fatal
free the cothread_state in the scheduler.

This one passes all the current cvs testcases including dynamic-pipeline.
2001-12-20 02:41:34 +00:00
Wim Taymans 5ad018148c Some more work on cleanup.
Original commit message from CVS:
Some more work on cleanup.
- added two functions in the scheduler _setup and _reset to initialize
the context. In the case of the cothread context we have to map the
cothread stack space onto the threads stack.
- setup/reset the scheduler context in the threads context.
- fix the ghostpad cleanup.
- slightly changed the scheduler code to cleanly remove connections.
2001-12-19 19:22:53 +00:00
Wim Taymans e279738a3f Adde cothread context cleanup code
Original commit message from CVS:
Adde cothread context cleanup code
2001-12-18 16:49:13 +00:00
Christian Schaller d6b9ae8b63 aye ladie, no more ugly // comments here, even if Taaz gets upset about it
Original commit message from CVS:
aye ladie, no more ugly // comments here, even if Taaz gets upset about it
2001-12-14 22:59:21 +00:00
Wim Taymans 9f23c76bea Aplied more fixage from Michael Meeks.
Original commit message from CVS:
Aplied more fixage from Michael Meeks.
2001-12-13 23:14:39 +00:00
Wim Taymans cccc097ca5 API docs. revived _buffer_ref_by_count fast types for scheduler and bin.
Original commit message from CVS:
API docs.
revived _buffer_ref_by_count
fast types for scheduler and bin.
error checking on plugin features;
removed some prototypes that were not implemented (gst_pipeline_iterate
comes to mind)
remove gst_pad_event until we know what it's supposed to do.
remove sinesrc, it wasn't compiles anymore, so...
updates to various elements that used the old event API.
2001-10-21 18:00:31 +00:00
Erik Walthinsen c6a04366a3 gstinfo.[ch], cothreads.c: added initial support for -finstrument_functions gstbin.c: removed a reference to config.h...
Original commit message from CVS:
gstinfo.[ch], cothreads.c: added initial support for -finstrument_functions
gstbin.c: removed a reference to config.h
gstbuffer.[ch]: added gst_buffer_is_span_fast(), used it in gst_buffer_span
elements/gstfilesrc.c: initial work fleshing out the event handling code

everywhere else: wrapped XML stuff in #ifndef's
2001-09-10 19:46:01 +00:00
Wim Taymans c416297af4 Changed the maxcothreads to 16. connect to the new_ghost_pad signal in parse.
Original commit message from CVS:
Changed the maxcothreads to 16.
connect to the new_ghost_pad signal in parse.
2001-06-06 18:29:57 +00:00
Wim Taymans db0325ee37 Use the STACKSIZE and number of cothreads to calculate the cothread stack space (easier to change the number of cothr...
Original commit message from CVS:
Use the STACKSIZE and number of cothreads to calculate the cothread stack
space (easier to change the number of cothreads).
2001-06-04 16:02:48 +00:00
Wim Taymans b93de9e922 Docs updates
Original commit message from CVS:
Docs updates
Changed the cothread to use sigjmp_buf
removed some unused methods.
Some code cleanups.
2001-05-27 14:37:29 +00:00
Erik Walthinsen f3098e9546 fixed cothread locking and set_arg/get_arg safety, and switched to 64 cothreads of 32KB
Original commit message from CVS:
fixed cothread locking and set_arg/get_arg safety, and switched to 64 cothreads of 32KB
2001-05-26 22:58:15 +00:00
Erik Walthinsen 4a583683e5 Merged from INCSCHED on 200505251!!!
Original commit message from CVS:
Merged from INCSCHED on 200505251!!!
2001-05-25 21:00:07 +00:00
David I. Lehn 18adcf5a3f - Fix cothread pointers and allocation so full 2M stack space available:
Original commit message from CVS:
- Fix cothread pointers and allocation so full 2M stack space available:
- Double maximums to use full stack space:
- COTHREAD_STACKSIZE = 16k
- COTHREAD_MAXTHREADS = 128
- cothread changes only verified on x86
- cothread_create returns NULL if nthreads == MAXTHREADS though not yet handled by gstschedule caller
2001-05-16 07:16:47 +00:00
Erik Walthinsen 4cbdcef47f move cothread_context definition over to the .c
Original commit message from CVS:
move cothread_context definition over to the .c
2001-05-10 22:35:50 +00:00
Erik Walthinsen afd1953a04 moved cothread parameters into .c to avoid rebuilding libgst.la every time
Original commit message from CVS:
moved cothread parameters into .c to avoid rebuilding libgst.la every time
2001-05-10 22:10:19 +00:00
Erik Walthinsen ca4e87219c added sparc cothreads
Original commit message from CVS:
added sparc cothreads
2001-03-02 18:30:37 +00:00
Wim Taymans fdaa2307da A very small change to make eos somewhat work. no inner bins are checked.
Original commit message from CVS:
A very small change to make eos somewhat work. no inner bins are checked.
When an element fires EOS, the chain with that element is removed from
the scheduler (marked inactive). If all chains are inactive, the bin
fires EOS.
2001-01-20 03:10:44 +00:00