Commit graph

662 commits

Author SHA1 Message Date
Andy Wingo
d48d5c640a added a test for pth and pthreads. in summary, it doesn't work because in __pthread_find_self() some funny stack poin...
Original commit message from CVS:
added a test for pth and pthreads. in summary, it doesn't work because
in __pthread_find_self() some funny stack pointer math is done that
will result in no matches for __pthread_find_self(). this is dereferenced in
__errno_location, causing a segfault on context switch because of the errno-swapping
on the part of pth. it's a mess and i don't know how to get around it. i'll
have to look into what ngpt does for looking up errno, as it has kernel threads as
well as user threads.
2002-01-21 05:09:17 +00:00
Andy Wingo
1bc541f213 The core code from pth has been taken out and included in gstreamer.
Original commit message from CVS:
The core code from pth has been taken out and included in gstreamer.
This code is documented, more or less, in http://www-124.ibm.com/pthreads/docs/rse-pmt.ps.

This code is designed to replace cothreads.[ch], eventually.
2002-01-21 00:20:29 +00:00
Wim Taymans
debf06d4b9 Small cleanups
Original commit message from CVS:
Small cleanups
Only do capsnego in READY or higher
2002-01-20 16:04:16 +00:00
Wim Taymans
b1bcc1875c Delay pad negotiation until the element is in READY or higher. this will gice the element a chance to open its device...
Original commit message from CVS:
Delay pad negotiation until the element is in READY or higher. this will
gice the element a chance to open its devices before we start calling the
connect functions.
Make sure we use the real pad in the negotiation.
Some other small cleanups.
2002-01-20 11:55:35 +00:00
Andy Wingo
8df3a20716 removed another overzealous check, sigh
Original commit message from CVS:
removed another overzealous check, sigh
2002-01-19 15:22:19 +00:00
Andy Wingo
d4176eac72 removed a check that was too restrictive. any errors that are not caught here will be caught at runtime.
Original commit message from CVS:
removed a check that was too restrictive. any errors that are not caught here will be caught at runtime.
2002-01-19 06:49:06 +00:00
Andy Wingo
a43702feb0 miscellaneous fixes, added gst_pad_unset_sched() api.
Original commit message from CVS:
miscellaneous fixes, added gst_pad_unset_sched() api.

although I unref the old pipeline and the cothread context gets freed in dynamic-pipeline.c,
I still get segfaults.
2002-01-19 06:29:40 +00:00
Andy Wingo
a7c3fc7d6c cleaning up duplicated code in gstbin.c added some sanity checks in gstpad.c added checks for failed connections in g...
Original commit message from CVS:
* cleaning up duplicated code in gstbin.c
* added some sanity checks in gstpad.c
* added checks for failed connections in gstparse.c
* better docs in gstxml.c
2002-01-18 22:44:19 +00:00
Martin Enlund
7b1d5c7abd Previously filesrc would segfault when fed with the name of a directory.
Original commit message from CVS:
Previously filesrc would segfault when fed with the name of a directory.
Added check to ensure that the given file is a regular file.
2002-01-15 22:33:15 +00:00
Andy Wingo
f38969ff25 fix doc build for glib2 remove template files from cvs, they are generated with gtkdoc-mktmpl new, cleaner interface ...
Original commit message from CVS:
* fix doc build for glib2
* remove template files from cvs, they are generated with gtkdoc-mktmpl
* new, cleaner interface to the parser facilities
* cleanups in gstparse.c
2002-01-14 04:09:56 +00:00
Wim Taymans
b2ee38575d Landed the new improved capsnegotiation system.
Original commit message from CVS:
Landed the new improved capsnegotiation system.
The main idea is to keep track of the possible data types that can
pass through a connection. plugins can at any time inspect, adjust and
refine these caps. plugins also get notified when something changes to
the types so that they can reconfigure themselves.
Look at the updated plugins and the soon to be finished doc.
2002-01-13 22:22:42 +00:00
Wim Taymans
4031c2f252 Added EOS to the cache.
Original commit message from CVS:
Added EOS to the cache.
2002-01-13 12:59:23 +00:00
David I. Lehn
8da28910bc s/filter/plugin/ add $(GST_LIBS) to all plugins move Makefile.am things around to a mostly standard layout remove HTT...
Original commit message from CVS:
* s/filter/plugin/
* add $(GST_LIBS) to all plugins
* move Makefile.am things around to a mostly standard layout
* remove HTTP flags/libs from elements since http element moved
2002-01-12 00:47:40 +00:00
Andy Wingo
58ce781c21 fix for libxml1 compatibility
Original commit message from CVS:
fix for libxml1 compatibility
2002-01-11 16:05:06 +00:00
Andy Wingo
d262bea863 summary: fix xml in gstreamer 1) make clear distinction between loading xml that actually creates objects and loading...
Original commit message from CVS:
summary: fix xml in gstreamer

1) make clear distinction between loading xml that actually creates objects and loading xml that just
synchronizes properties with objects. moved most of gst_element_restore_thyself functionality to
gst_xml_make_element. this new function name can change if it sucks.
2) many various fixes. createxml and runxml work now.
3) doc updates.
4) GstSignalObject is stil broken. i have no idea what it's supposed to do.
2002-01-11 15:49:47 +00:00
Andy Wingo
c51e7cd2fe cimpile fix for libxml1
Original commit message from CVS:
cimpile fix for libxml1
2002-01-11 07:21:26 +00:00
Andy Wingo
099074586c added function gst_xml_write_file() which writes a nicely formatted and indented xml representation of an element to ...
Original commit message from CVS:
added function gst_xml_write_file() which writes a nicely formatted and indented
xml representation of an element to a file. you can use stdout or stderr, for
example.
2002-01-11 01:48:17 +00:00
Andy Wingo
35aa5cebdf global s/disksrc/filesrc/, but edited by me
Original commit message from CVS:
global s/disksrc/filesrc/, but edited by me
2002-01-06 04:26:37 +00:00
Andy Wingo
0b08c3f213 finalize conversion to gst-register
Original commit message from CVS:
finalize conversion to gst-register
2002-01-04 19:47:17 +00:00
Thomas Vander Stichele
8a96491618 fixes for make distcheck does GST_ELEMENT_IS_COTHREAD_STOPPING still exist ? and if so, how should it be found by the...
Original commit message from CVS:
fixes for make distcheck
does GST_ELEMENT_IS_COTHREAD_STOPPING still exist ?
and if so, how should it be found by the bytestream test ?
2002-01-02 14:07:46 +00:00
Thomas Vander Stichele
c81314f924 fixes to make distcheck work changed registry out of date to warning to allow tests to continue regardless (any bette...
Original commit message from CVS:
fixes to make distcheck work
changed registry out of date to warning to allow tests to continue regardless (any better suggestions much appreciated)
2002-01-02 12:23:26 +00:00
Wim Taymans
f1827a5697 /me should compile first
Original commit message from CVS:
/me should compile first
2002-01-01 16:01:00 +00:00
Wim Taymans
0a74077dcc API doc updates.
Original commit message from CVS:
API doc updates.
2002-01-01 15:58:51 +00:00
Wim Taymans
a4e4bb5795 Small cleanups
Original commit message from CVS:
Small cleanups
Added a bound to the number of switches, also fix a small bug
2002-01-01 13:51:04 +00:00
Wim Taymans
03391373ef Some small cleanups. added a drop_probaility arg to identity, so it occasionally can drop buffers to simulate network...
Original commit message from CVS:
Some small cleanups.
added a drop_probaility arg to identity, so it occasionally can drop buffers
to simulate network packet loss
2002-01-01 13:46:04 +00:00
Wim Taymans
ad6c7ef940 yes, it does return a gboolean.
Original commit message from CVS:
yes, it does return a gboolean.
2001-12-31 16:02:50 +00:00
Thomas Vander Stichele
d1d3d5344f can someone fix this better than me and remove FIXME's ?
Original commit message from CVS:
can someone fix this better than me and remove FIXME's ?
2001-12-31 15:54:42 +00:00
Wim Taymans
881672937a And remove some of the debugging crap
Original commit message from CVS:
And remove some of the debugging crap
2001-12-29 03:09:23 +00:00
Wim Taymans
7a4596415c And the .h file..
Original commit message from CVS:
And the .h file..
2001-12-29 03:05:34 +00:00
Wim Taymans
893c03f784 Changed to a GList as a GSList seems to have ..uhm.. issues
Original commit message from CVS:
Changed to a GList as a GSList seems to have ..uhm.. issues
2001-12-29 03:02:14 +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
01d2b54b37 Fix cleanup for filesrc
Original commit message from CVS:
Fix cleanup for filesrc
2001-12-28 15:19:38 +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
2198726630 Added a property to make identity fail after N buffers
Original commit message from CVS:
Added a property to make identity fail after N buffers
2001-12-27 00:40:50 +00:00
Andy Wingo
20485ce50e save the plugin paths in the registry load them back don't look in PLUGIN_DIR ($prefix/lib/gst usually) when PLUGIN_B...
Original commit message from CVS:
* save the plugin paths in the registry
* load them back
* don't look in PLUGIN_DIR ($prefix/lib/gst usually) when PLUGIN_BUILD_DIR
2001-12-25 23:32:01 +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
Andy Wingo
aa9bc272af removed httpsrc from core
Original commit message from CVS:
removed httpsrc from core
2001-12-24 21:33:03 +00:00
Wim Taymans
7ec6702121 Better, cleaner state management of the scheduler by adding scheduler state flags.
Original commit message from CVS:
Better, cleaner state management of the scheduler by adding scheduler state
flags.
typefind has to interrupt instead of yield.
Fix a leak in the queue when it's dropping buffers.
2001-12-24 15:14:03 +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
23eb626391 include gstevent.h
Original commit message from CVS:
include gstevent.h
2001-12-19 02:19:00 +00:00
Wim Taymans
2c9d646895 Moved the typedef to gsttypes.h as stock rh 7.2 gcc doesn't seem to like it otherwise.
Original commit message from CVS:
Moved the typedef to gsttypes.h as stock rh 7.2 gcc doesn't seem to like
it otherwise.
2001-12-19 01:50:11 +00:00
Zaheer Abbas Merali
eb45d89cfb Added capsnego to the Tee Element
Original commit message from CVS:
Added capsnego to the Tee Element
2001-12-19 01:17:54 +00:00
Wim Taymans
56d3cdf64a - Elements can now send events to their parent.
Original commit message from CVS:
- Elements can now send events to their parent.
- remove the g_signals from the core for parent<->child communication
- the application can easily get element info by listening for an event
signal from the toplevel bin.
- added gst_element_info()/_error().
- fakesrc and fakesink use the info event instead of g_print.
- GST_TYPE_* causes segfaults with elect fence, rever to G_TYPE_POINTER
until we know what's wrong.
- various leaks fixed wrt element destroy.
- The object that created the event is now stored as GST_EVENT_SRC
2001-12-18 19:03:07 +00:00