Commit graph

100 commits

Author SHA1 Message Date
Wim Taymans
e04e9d291e Make sure we set the reaping flag when going to NULL before we signal the parent.
Original commit message from CVS:
Make sure we set the reaping flag when going to NULL before we signal the
parent.
2002-12-06 20:12:38 +00:00
Thomas Vander Stichele
18f9761afc cleanups
Original commit message from CVS:
cleanups
2002-11-28 21:24:01 +00:00
Wim Taymans
3fc8ad0842 - an element also has a failed state change if the scheduler setup failed.
Original commit message from CVS:
- an element also has a failed state change if the scheduler setup failed.
- set a thread to _STATE_NULL before destroying it.
2002-11-19 23:15:23 +00:00
Wim Taymans
936c0aff15 Remove bogus free
Original commit message from CVS:
Remove bogus free
2002-11-03 00:13:40 +00:00
David Schleef
e7db7a70ad Change from pthreads to GThreads
Original commit message from CVS:
Change from pthreads to GThreads
2002-11-01 21:38:39 +00:00
Andy Wingo
c92874adad licenses, ugg
Original commit message from CVS:
licenses, ugg
2002-09-29 18:12:52 +00:00
Ronald S. Bultje
fc6ac17dc1 Dont give a warning on unconnected pads (bugzilla ID 93218) - thanks Iain
Original commit message from CVS:
Dont give a warning on unconnected pads (bugzilla ID 93218) - thanks Iain
2002-09-13 13:32:28 +00:00
Thomas Vander Stichele
a0537fd60f revert this comment
Original commit message from CVS:
revert this comment
2002-09-12 20:13:21 +00:00
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
92de697c34 I'm too lazy to comment this
Original commit message from CVS:
combined patch by me and lioux@FreeBSD.org
2002-07-11 21:22:55 +00:00
Wim Taymans
ae87d97cb2 - Removed unused locking from the cothreads
Original commit message from CVS:
- Removed unused locking from the cothreads
- use G_*_DECLS in .h files
- remove gstlog.h include from gstobject.h, add to .c files
- removed unused refcounting code from gstobject
- small fixes in #includes
- Added Scheduling policy and priority properties to gstthread so that
SCHED_FIFO and SCHED_RR threads can be constructed.
2002-07-08 19:07:30 +00:00
Andy Wingo
2eb7f04289 free stack properly s/prefered/preferred/
Original commit message from CVS:
* free stack properly
* s/prefered/preferred/
2002-06-27 23:55:27 +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
546dc898a6 fix a debug segfault
Original commit message from CVS:
fix a debug segfault
2002-06-27 22:22:42 +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
Wim Taymans
839c62927c Use new method to check for availability of threads
Original commit message from CVS:
Use new method to check for availability of threads
2002-06-23 12:43:45 +00:00
Wim Taymans
69b7a292d6 Added a runtime option to use a dummy threading implementation that uses
Original commit message from CVS:
Added a runtime option to use a dummy threading implementation that uses
NOPs for all synchronisation and threading operations.
2002-06-21 14:50:00 +00:00
Wim Taymans
3dd3895eea Added _get_prefered_stack to the scheduler
Original commit message from CVS:
Added _get_prefered_stack to the scheduler
2002-06-19 18:13:28 +00:00
Wim Taymans
9d4eee380a Fix a little typo, unlock the peer element if it's decoupled instead of our own element
Original commit message from CVS:
Fix a little typo, unlock the peer element if it's decoupled instead
of our own element
2002-06-04 21:01:10 +00:00
Wim Taymans
fddb92b5e2 Error checking in pthread creation more info in gst_util_dump_mem
Original commit message from CVS:
Error checking in pthread creation
more info in gst_util_dump_mem
2002-05-29 15:01:50 +00:00
Wim Taymans
6f96a24d2e - The clock_wait now returns the difference between requested time and unlock time.
Original commit message from CVS:
- The clock_wait now returns the difference between requested time and
unlock time.
- Misc defines like GST_SECOND in gstclock.h
- remove pre/post in gstelement.c until fixed.
- added release_locks to gstelement so that the element can unlock itself
- added some more predefined events.
- added folowing functions to gstpad:
- convert function: get the relation between formats on this pad
- query function: get stats about the pad (position/total/latency)
- internal connect function: find out how this pad connects to other
pad internally to the element.
- generic pad_dispatcher.
- removed the last bits of pullregion
- use release_locks on the queue.
- added some events to queue
- make gstthread use the new release_locks function
- make the scheduler use the new clock_wait functions
- added events to fakesink
- added query functions to filesrc
- swap type and offset in the bytestream seek API to match fseek
- added some event handling in bytestream.
2002-05-26 21:54:27 +00:00
Andy Wingo
d2ed0906a6 implemented threadsafe property set/get system as discussed in docs/random/wingo/threadsafe-properties some cleanups ...
Original commit message from CVS:
* implemented threadsafe property set/get system as discussed in
docs/random/wingo/threadsafe-properties
* some cleanups
* this change will cause binary incompatibilities, better rebuild them plugins

now, off to drink :-)
2002-05-26 03:23:25 +00:00
Andy Wingo
6691120451 gst_scheduler_factory_make () can accept NULL as the first arg now _create () sets the element sched and refcounts th...
Original commit message from CVS:
* gst_scheduler_factory_make () can accept NULL as the first arg now
*                      _create () sets the element sched and refcounts the scheduler
* corresponding touchups to gstpipeline and gstthread
2002-05-04 18:59:24 +00:00
Thomas Vander Stichele
d38b086c67 api renaming
Original commit message from CVS:
api renaming
2002-04-23 11:15:18 +00:00
Andy Wingo
8d198fed21 a hack to work around intltool's brokenness a current check for mpeg2dec details->klass reorganizations an element br...
Original commit message from CVS:
* a hack to work around intltool's brokenness
* a current check for mpeg2dec
* details->klass reorganizations
* an element browser that uses details->klass
* separated cdxa parse out from the avi directory
2002-04-20 21:42:53 +00:00
Benjamin Otte
8cd991a9d6 - make all _get_list functions return a const reference to original lists and no copy
Original commit message from CVS:
- make all _get_list functions return a const reference to original lists and no copy
- redo code accordingly
- fix compile issue in dparam stuff
2002-04-19 19:49:41 +00:00
Thomas Vander Stichele
5a6cf24c16 code review
Original commit message from CVS:
code review
2002-04-12 09:38:47 +00:00
Andy Wingo
b214d35eed commit to make gstreamer follow the gtk function/macro naming conventions:
Original commit message from CVS:
commit to make gstreamer follow the gtk function/macro naming conventions:

GstPadTemplate <-> gst_pad_template <-> GST_PAD_TEMPLATE

and the same for *factory and typefind.
2002-04-11 20:35:18 +00:00
Wim Taymans
ffe760e476 GST_DEBUG and _INFO should have no trailing \n
Original commit message from CVS:
GST_DEBUG and _INFO should have no trailing \n
2002-04-03 18:26:03 +00:00
Wim Taymans
f0326eea55 - Remove the propsprivate header file
Original commit message from CVS:
- Remove the propsprivate header file
- Added new API for properties.
- Moved the clock distribution to the scheduler.
- Removed the lock from GstCaps
- Added boxed types for Caps/Props
- Simplified the clock, new systemclock implementation
- Removed deprecated element_info/send_event functions
- First step at exposing more info in the pad_connect functions
- Queue cleanup
- Make the scheduler aware of other schedulers inside it
- Added the _SELF_SCHEDULABLE flag to gstthread
- Removed _get_widget from _utils, changed to new props API
- Make fakesink sync on timestamps when requested
- Removed the offset notify from filesrc
- Added a fast scheduler
- some scheduler cleanups.
2002-03-30 17:05:03 +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
cd9f4cb49b we don't want to run _dispose twice on the scheduler, do we?
Original commit message from CVS:
we don't want to run _dispose twice on the scheduler, do we?
2002-03-17 00:41:46 +00:00
Benjamin Otte
aa7fef46d4 warning: initialization from incompatible pointer type
Original commit message from CVS:
warning: initialization from incompatible pointer type
2002-03-05 08:26:13 +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
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
Thomas Vander Stichele
f972dbb746 fix some of uraeus's commenting fixes can someone also put {} around GST_DEBUG statements after if's ?
Original commit message from CVS:
fix some of uraeus's commenting fixes
can someone also put {} around GST_DEBUG statements after if's ?
2001-12-15 01:01:57 +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
wrobell
08eaa11259 - some fixes to int2float making automake 1.5 happy (gst now requires automake1.5). It's still not perfect but it bui...
Original commit message from CVS:
- added playondemand plugin by Leif Morgan Johnson <lmjohns3@eos.ncsu.edu>
- some fixes to int2float
- aplied a patch from wrobell <wrobell@ite.pl> that is a first attempt at
making automake 1.5 happy (gst now requires automake1.5). It's still not
perfect but it builds.
- Made the schedulers plugable. The default scheduler now lives inside a
plugin.
- Added a new mpeg1/2 parser/demuxer.
- Fixed some compiler warnings in the core libs.
- substantial work to GstThread (hopefully less race conditions). simplified
the code in GstThread a bit. A state change can now also happen in the
thread context.
- reworked the state semantics of a bin. it'll now automatically get the
highest state of its children.
- the autoplugger now nests the threads so that a state change failure of
one thread doesn't make its upstream thread lock.
- GstQueue refuses to go to PLAYING if the sinkpad is not connected. This
way the queue will not wedge in the _get lock.
- GstQueue unlocks its mutexes when going to PAUSED.
- make sure that when all elements in a bin/thread go to PAUSED, the bin
is set to PAUSED too.
- make a parent bin wait for its children to PAUSE before ending the
iteration with FALSE (EOS)
- Some changes to GstPlay to deal with EOS.
- aplied the latest patch from Zeenix to gstrtp.

end result: GstPlay doesn't crash on EOS and the pipeline is now shut down
properly.
2001-12-04 22:12:50 +00:00
Erik Walthinsen
42ec9085a2 added taaz's threading patch, including queue events
Original commit message from CVS:
added taaz's threading patch, including queue events
2001-10-27 20:28:31 +00:00
Erik Walthinsen
455567482c changed names from guchar* to gchar*, which makes C++ happy, and is, um, correct.
Original commit message from CVS:
changed names from guchar* to gchar*, which makes C++ happy, and is, um, correct.
2001-10-20 23:15:29 +00:00
Erik Walthinsen
d574ab8126 merge from EVENTS1 on 20011016
Original commit message from CVS:
merge from EVENTS1 on 20011016
2001-10-17 10:21:27 +00:00
Steve Baker
b4a9f42c97 reenabled object destruction by renaming shutdown and real_destry to dispose funcs
Original commit message from CVS:
reenabled object destruction by renaming shutdown and real_destry to dispose funcs
2001-09-28 19:16:02 +00:00
Joshua N. Pritikin
8b29840f55 1. Add more warnings for the gst core only. Various trival fixes to quiet the warnings.
Original commit message from CVS:
1. Add more warnings for the gst core only.  Various trival fixes
to quiet the warnings.

2. Fix GstBufferCopyFunc prototype.

3. Re-apply the reverted type!=0 assertion in gst_elementfactory_new.
2001-09-14 22:16:47 +00:00
Joshua N. Pritikin
ef37a388d0 make gst_thread_change_state more forgiving
Original commit message from CVS:
make gst_thread_change_state more forgiving
2001-09-14 05:02:27 +00:00
Erik Walthinsen
ee9426a1a1 Initial code for the event system.
Original commit message from CVS:
Initial code for the event system.
2001-08-06 20:37:21 +00:00
Wim Taymans
3526156fe7 Added a missing state change switch.
Original commit message from CVS:
Added a missing state change switch.
Uncommented a big FIXME that was needed after all.
Stop now works.
2001-07-31 20:57:58 +00:00