Commit graph

209 commits

Author SHA1 Message Date
Benjamin Otte
907e3e97d9 update plugin initialization restructuring (see email for details
Original commit message from CVS:
update plugin initialization restructuring (see email for details
2003-10-31 19:32:47 +00:00
Andy Wingo
31d748d332 s/GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488. Also inc...
Original commit message from CVS:
s/GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488. Also includes scheduler patches, and probably fixes some queue bugs relating to events and buffers.
2003-10-08 16:06:02 +00:00
Thomas Vander Stichele
1adec99a85 forward port of 123517 adds more debug info to optscheduler
Original commit message from CVS:
forward port of 123517
adds more debug info to optscheduler
2003-10-05 15:18:11 +00:00
Iain Holmes
ebaed96716 When scheduling a group, check that its not the group thats currently in the top of the runqueue.
Original commit message from CVS:
When scheduling a group, check that its not the group thats currently in the
top of the runqueue.

Then, when scheduling a different group, disable the first group and search for the next enabled group to run. Stops deadlocking in loop based elements.

Also remove the g_list_length's from the debugging statements for a bit of speed
2003-09-27 14:13:41 +00:00
Thomas Vander Stichele
c4c3c998df reverting error patches before making a branch.
Original commit message from CVS:
reverting error patches before making a branch.
2003-09-16 09:57:31 +00:00
Benjamin Otte
be1eaa4de3 implement translatable error messages using gerror.
Original commit message from CVS:
implement translatable error messages using gerror.

Includes bugfixes for:
- crash when unlinking Ghostpads
- make *_PAD_* macros use glib casts
- make spider typefinding merge buffers correctly
2003-09-14 19:49:32 +00:00
Angel Carpintero
7e6ea67d56 fix the error that break the built
Original commit message from CVS:
fix the error that break the built
2003-08-27 10:19:08 +00:00
Thomas Vander Stichele
4aeb784a6f fixes event function setting on unconnected pads
Original commit message from CVS:
fixes event function setting on unconnected pads
2003-08-26 10:50:35 +00:00
David Schleef
590d364baa Removed building of ext/cothreads and corresponding scheduler. If you want to reenable it, please fix it first. (Se...
Original commit message from CVS:
Removed building of ext/cothreads and corresponding scheduler.  If
you want to reenable it, please fix it first.  (See bug #87163)
2003-07-27 05:10:42 +00:00
Andy Wingo
ff57e00592 run pre_run_func and post_run_func when working without a cothread -- fixes threadsafe element props
Original commit message from CVS:
run pre_run_func and post_run_func when working without a cothread -- fixes threadsafe element props
2003-07-16 15:39:46 +00:00
Benjamin Otte
803ce6bf48 GST_DEBUG reorganization containing loads of stuff:
Original commit message from CVS:
GST_DEBUG reorganization
This is a big diff (ca 450k), containing loads of stuff:
- gstinfo.[ch] complete rewrite
- changing of all GST_DEBUG messages to reflect that change
- reorganization of subsystem disabling
- addition of gstconfig.h.in so we can track the disablings
- <gst/gst.h> does not include <unistd.h> and <config.h> anymore
- documentation updated for gstinfo stuff (build the docs yourself to know what changed)
- bugfixes for making of the docs (files from CVS are not deleted anymore
- testsuite for debugging changes in testsuite/debug

expect breakage
2003-06-29 14:05:49 +00:00
Wim Taymans
61a4a6389f try to fix #114252
Original commit message from CVS:
try to fix #114252
2003-06-07 11:36:42 +00:00
David Schleef
214c557a6d Change GST_DEBUG_FUNCPTR() to return a pointer of the same type that it is called with. Fix lots of warnings due to ...
Original commit message from CVS:
Change GST_DEBUG_FUNCPTR() to return a pointer of the same type that it
is called with.  Fix lots of warnings due to change.
2003-05-18 23:34:12 +00:00
Thomas Vander Stichele
bdea7633cd a bunch of gtk-doc fixes
Original commit message from CVS:
a bunch of gtk-doc fixes
2003-05-18 15:03:34 +00:00
Benjamin Otte
b7077cab18 make gst_thread_get_current() work with threaded cothreads
Original commit message from CVS:
make gst_thread_get_current() work with threaded cothreads
2003-04-21 18:37:13 +00:00
Wim Taymans
63db8dfb67 - enable chain if an active group is added to it
Original commit message from CVS:
- enable chain if an active group is added to it
- enable group if a PLAYING element is added to it
2003-03-28 17:29:57 +00:00
Wim Taymans
5b91593b0e Set initial flags on various scheduler structures
Original commit message from CVS:
Set initial flags on various scheduler structures
2003-03-25 19:34:30 +00:00
Benjamin Otte
981f6185c5 debugging session with wim
Original commit message from CVS:
debugging session with wim
2003-03-13 23:59:36 +00:00
Wim Taymans
4e44ab15b5 - fix unlink between decoupled elements
Original commit message from CVS:
- fix unlink between decoupled elements
- clear the entry point of a group when we remove the element
- fix a potential problem in _merge_groups that could be triggered when
someone is holding an extra refcount to the group.
2003-03-13 18:46:21 +00:00
Benjamin Otte
35391c0907 mutexes want to be free, too
Original commit message from CVS:
mutexes want to be free, too
2003-03-12 21:55:09 +00:00
Wim Taymans
678ea8bbbb Fix optimal scheduler with cothreads
Original commit message from CVS:
Fix optimal scheduler with cothreads
2003-03-11 23:26:18 +00:00
Benjamin Otte
0f2a63a169 Fix bug when joining threads.
Original commit message from CVS:
Fix bug when joining threads.
2003-03-11 21:37:36 +00:00
Benjamin Otte
c3ebe159bd added (hopefully) compatible cothreads emulation by using GThreads.
Original commit message from CVS:
added (hopefully) compatible cothreads emulation by using GThreads.
use '--gst-scheduler=basicgthread' to try it out
includes bugfix for opt to call do_cothreads_init when using threads
2003-03-11 21:01:31 +00:00
Wim Taymans
aab288b33e Never take away the group from a loop based element
Original commit message from CVS:
Never take away the group from a loop based element
2003-03-04 20:55:25 +00:00
Wim Taymans
5bda977d93 Fix the get_wrapper to handle the case where the peer group is disabled
Original commit message from CVS:
Fix the get_wrapper to handle the case where the peer group is disabled
2003-02-28 23:14:50 +00:00
Wim Taymans
f006787228 Stupid bug, always use the runqueue to start scheduling things.
Original commit message from CVS:
Stupid bug, always use the runqueue to start scheduling things.
2003-02-28 17:50:04 +00:00
Wim Taymans
777cae1b0b Schedule next chain on interrupt
Original commit message from CVS:
Schedule next chain on interrupt
2003-02-27 23:47:40 +00:00
Wim Taymans
71775c37e3 - More refcounting fixes that now sustain abuse from spider, key is to be careful when iterating over a list when our...
Original commit message from CVS:
- More refcounting fixes that now sustain abuse from spider, key is to be
careful when iterating over a list when our current pointer could be
removed.
2003-02-27 23:07:30 +00:00
Wim Taymans
e44d5c1d4a Removed an assert that will not hold when the chain currently executing was merged into another one.
Original commit message from CVS:
Removed an assert that will not hold when the chain currently executing
was merged into another one.
2003-02-27 21:23:39 +00:00
Wim Taymans
2b3c56c4d1 print refcount in _show
Original commit message from CVS:
print refcount in _show
2003-02-27 18:29:07 +00:00
Wim Taymans
91d33d766a Added refcounting to the optimal scheduler to guard against modifications during iterations
Original commit message from CVS:
Added refcounting to the optimal scheduler to guard against modifications
during iterations
2003-02-27 18:21:34 +00:00
Wim Taymans
a2b7df0911 More sensible name for the scheduler when compiled without cothreads
Original commit message from CVS:
More sensible name for the scheduler when compiled without cothreads
2003-02-10 20:11:14 +00:00
Erik Walthinsen
0da768dacb Fix various inconsistencies discovered while attempting to fix --disable-*.
Original commit message from CVS:
Fix various inconsistencies discovered while attempting to fix --disable-*.
Uraeus: this should fix the bison.simple problem that you've had.
2003-02-10 07:53:58 +00:00
Wim Taymans
50fccd3791 Clear any queued buffers when going to READY.
Original commit message from CVS:
Clear any queued buffers when going to READY.
2003-02-06 20:22:34 +00:00
Ronald S. Bultje
637326bc8d older gccs crack here
Original commit message from CVS:
older gccs crack here
2003-02-05 17:09:50 +00:00
Wim Taymans
d7e33dd2ce - Use the eventhandler instead of the event function to send events.
Original commit message from CVS:
- Use the eventhandler instead of the event function to send events.
- make the scheduler setup the eventhandlers
- intercept flush events on pads links that can potentially queue data
and flush it.
- some more debugging info in spider.

I can think of one case where this flush might fail: unconnected pads where
the scheduler has not set up the eventhandler yet. I'll come up with a
solution for that soon.
2003-02-03 22:50:55 +00:00
Wim Taymans
b87dbe8c98 Some extra debug info
Original commit message from CVS:
Some extra debug info
2003-02-02 19:14:26 +00:00
Erik Walthinsen
bab7be2c91 revert the revert, switch out the new code for the 'working' code with an #if
Original commit message from CVS:
revert the revert, switch out the new code for the 'working' code with an #if
2003-01-21 20:48:23 +00:00
Wim Taymans
69be241342 Revert 1.66 and 1.67 that seemed to break the unlink scheduler function 1.68 is still added
Original commit message from CVS:
Revert 1.66 and 1.67 that seemed to break the unlink scheduler function
1.68 is still added
2003-01-21 18:39:11 +00:00
Wim Taymans
59a224893a Some more debugging
Original commit message from CVS:
Some more debugging
2003-01-20 23:11:51 +00:00
Wim Taymans
826f848618 - We need to pull UNUSABLE pads too because it might be an event
Original commit message from CVS:
- We need to pull UNUSABLE pads too because it might be an event
2003-01-20 23:10:32 +00:00
Erik Walthinsen
de6bcd890a - added 'remove' argument to _chain_recursive_add to remove elements from old chain before adding to new one
Original commit message from CVS:
- added 'remove' argument to _chain_recursive_add to remove elements from
old chain before adding to new one
- reworked _pad_unlink to be simpler and more correct
2003-01-20 22:22:46 +00:00
Erik Walthinsen
cbbb8371fe moved recursive exit to the front of the call, to make it easier to add prevchain removal
Original commit message from CVS:
moved recursive exit to the front of the call, to make it easier to add prevchain removal
2003-01-20 22:02:46 +00:00
Erik Walthinsen
590604e430 - some minor whitespace cleanups
Original commit message from CVS:
- some minor whitespace cleanups
- rework _chain_add_element to put the element in either the main or
disabled lists depending on whether the element is PLAYING or not.
2003-01-20 21:23:19 +00:00
Wim Taymans
59bd88118f Added interrupt back in spider, make opt scheduler schedule next chain on interrupt (like basic did)
Original commit message from CVS:
Added interrupt back in spider, make opt scheduler schedule next chain
on interrupt (like basic did)
2003-01-12 20:28:08 +00:00
Wim Taymans
89bf2733e9 - return boolean in _interrupt to better inform element
Original commit message from CVS:
- return boolean in _interrupt to better inform element
- fix default bufferpool unref
2003-01-11 16:27:45 +00:00
Iain Holmes
7ec295a0cd Don't remove an element from its chain if it doesn't have a chain
Original commit message from CVS:
Don't remove an element from its chain if it doesn't have a chain
2003-01-11 13:44:33 +00:00
David I. Lehn
5a74101933 more connect -> link updates
Original commit message from CVS:
more connect -> link updates
2003-01-09 22:59:37 +00:00
Thomas Vander Stichele
5529bbc7dc first pass of connect->link gst-plugins and other stuff compiles without change at this point
Original commit message from CVS:
first pass of connect->link
gst-plugins and other stuff compiles without change at this point
2003-01-09 14:15:37 +00:00
Wim Taymans
e8b63df877 Provide intrastructure to not have to pass NULL buffers on errors and interrupts, this should fix some issues with th...
Original commit message from CVS:
Provide intrastructure to not have to pass NULL buffers on errors and
interrupts, this should fix some issues with the optimal scheduler.
2003-01-08 21:33:20 +00:00
Wim Taymans
6653167f11 - Remove annoying \n from cothread INFO/DEBUG messages
Original commit message from CVS:
- Remove annoying \n from cothread INFO/DEBUG messages
- only set an element to PAUSED when it gave an error during PLAYING
- ensure internal consistency of opt scheduler structures
- Added mex_recursion to opt scheduler
2003-01-01 04:28:33 +00:00
Wim Taymans
a03425c8b3 - disable pads when going to PAUSED, we want to make sure no data is passing when an element is not PLAYING.
Original commit message from CVS:
- disable pads when going to PAUSED, we want to make sure no data is
passing when an element is not PLAYING.
- changed the clock sync API, element should now get a ClockID first and
sync on that. This makes it possible to cancel clock requests.
2002-12-27 22:57:13 +00:00
Wim Taymans
2694db659d Fix merge_groups
Original commit message from CVS:
Fix merge_groups
2002-12-26 22:11:04 +00:00
Wim Taymans
abfc7a0ed8 implemented yield/interrupt
Original commit message from CVS:
implemented yield/interrupt
2002-12-21 02:25:54 +00:00
Wim Taymans
4a63ac4d02 Destroy cothreads first before destroying context
Original commit message from CVS:
Destroy cothreads first before destroying context
2002-12-20 18:49:17 +00:00
Wim Taymans
68b53ac4ab - Cleanups
Original commit message from CVS:
- Cleanups
- Added padding to structs
- fixed typechecking/casts
- reduced casts
- implemented remove_element in gstbin
- implemented set index on bin
2002-12-19 21:31:03 +00:00
Wim Taymans
7e16eb73de Delete chains only once..
Original commit message from CVS:
Delete chains only once..
2002-12-19 19:45:13 +00:00
Wim Taymans
e7ccc2ec08 - Factor out some error functions
Original commit message from CVS:
- Factor out some error functions
- handle the cases where multipad get to multi-sink loop/chain based
elements are connected.
2002-12-16 21:21:02 +00:00
Wim Taymans
103d810e2c Decoupled elements needs special case when we look for grouped elements.
Original commit message from CVS:
Decoupled elements needs special case when we look for grouped elements.
2002-12-15 22:52:48 +00:00
Wim Taymans
bd9dc3604f Some cleanups, added FIXMEs
Original commit message from CVS:
Some cleanups, added FIXMEs
2002-12-15 22:02:20 +00:00
Wim Taymans
8f06b55c38 - Removed old deprecated fastscheduler
Original commit message from CVS:
- Removed old deprecated fastscheduler
- ifdef out cothread specific code in optimalscheduler
- added more g_asserts to optimalscheduler
- create separate scheduler called "opt", removed property from scheduler
- fixed iterations property
2002-12-15 18:21:43 +00:00
Wim Taymans
11b376c838 Improve the optimal scheduler, mainly element remove and pad disconnect
Original commit message from CVS:
Improve the optimal scheduler, mainly element remove and pad disconnect
2002-12-15 12:18:04 +00:00
Wim Taymans
0d994e41ad turn off cothreads, fix some typos
Original commit message from CVS:
turn off cothreads, fix some typos
2002-12-09 22:31:16 +00:00
Wim Taymans
f07281a771 Destroying the cothread seems like a good idea here
Original commit message from CVS:
Destroying the cothread seems like a good idea here
2002-12-09 20:33:27 +00:00
Thomas Vander Stichele
7eea6a04b7 fix for parallel installability
Original commit message from CVS:
fix for parallel installability
2002-12-08 14:39:38 +00:00
David Schleef
2fed56b4a8 Removing unused code related to stack allocation (cothreads_stackquery(), gst_scheduler_get_preferred_stack())
Original commit message from CVS:
Removing unused code related to stack allocation (cothreads_stackquery(),
gst_scheduler_get_preferred_stack())
2002-12-06 23:05:26 +00:00
Wim Taymans
86376a2402 Make different names for the different cothreads implementations
Original commit message from CVS:
Make different names for the different cothreads implementations
2002-11-25 00:20:52 +00:00
Wim Taymans
ce5f3238d2 Make sure to unset the scheduler
Original commit message from CVS:
Make sure to unset the scheduler
2002-11-22 23:17:39 +00:00
Wim Taymans
9955ea95b9 Remove groups from chains and elements from groups when they are destroyed.
Original commit message from CVS:
Remove groups from chains and elements from groups when they are destroyed.
2002-11-07 18:50:06 +00:00
Wim Taymans
91b824a34c - Reworked the clock to prepare for async notifications
Original commit message from CVS:
- Reworked the clock to prepare for async notifications
- moved some common scheduler checking to gstbin
- added some vmethods to gstbin for future use
- more fixes to the optimal scheduler
- use new clock api in the schedulers
2002-11-02 13:54:34 +00:00
Thomas Vander Stichele
929f37fab1 I ran into this and had to hunt for it
Original commit message from CVS:
I ran into this and had to hunt for it
2002-09-30 10:58:40 +00:00
David Schleef
4da8cc062b Fix for compiler warnings on PowerPC. Compiler complains about longjmp() clobbering local variables, which appear to...
Original commit message from CVS:
Fix for compiler warnings on PowerPC.  Compiler complains about longjmp()
clobbering local variables, which appear to be bogus.
2002-09-18 06:21:58 +00:00
Wim Taymans
e6e1dc2e0e - some cleanups
Original commit message from CVS:
- some cleanups
- revert a patch that needs more thinking..
- move common code and sanity checks in gstscheduler.c instead of the
real schedulers.
- remove sanity checks from the schedulers
2002-09-13 23:02:54 +00:00
Wim Taymans
3443f74f10 Added optimal scheduler to build and call it optomega
Original commit message from CVS:
Added optimal scheduler to build and call it optomega
2002-09-12 21:00:57 +00:00
Wim Taymans
37a127d9ed - Make the return GList of gst_element_get_pad_list as const
Original commit message from CVS:
- Make the return GList of gst_element_get_pad_list as const
- Pad scheduler refactoring
- Remove gst_pad_set/unset_scheduler as it's not needed
- Reimplement gst_pad_get_scheduler using the parent scheduler
- Remove gst_pad_peek as it cannot work reliably
- Remove the pad bufpen, replace with scheduler private gpointer
- Make queue use the new _get_scheduler implementation
- Remove _pad_unset_scheduler from GstScheduler
- Remove LOOP_SEEK mode from aggregator
- Other fixes for API changes.
2002-09-12 20:52:03 +00:00
Thomas Vander Stichele
17d01b5d21 scheduler renaming
Original commit message from CVS:
scheduler renaming
- wingo or omega for cothreads package
- basic or fast or optimal for algorithms
2002-09-12 19:23:41 +00:00
Wim Taymans
27301abdb3 More updates to the non-cothread scheduler
Original commit message from CVS:
More updates to the non-cothread scheduler
2002-09-12 19:22:03 +00:00
Thomas Vander Stichele
dd9d93d295 code cleanup
Original commit message from CVS:
code cleanup
2002-09-12 18:54:16 +00:00
Thomas Vander Stichele
01c9750b48 makes for nicer looking code
Original commit message from CVS:
makes for nicer looking code
2002-09-12 18:51:17 +00:00
Wim Taymans
09051e110b Added comments
Original commit message from CVS:
Added comments
Added _show
Special cased wrapper functions to minimize checks at runtime
2002-09-08 22:42:29 +00:00
Wim Taymans
d5d1387153 A new scheduler that tries to minimize the number of cothreads, still needs a lot of work.
Original commit message from CVS:
A new scheduler that tries to minimize the number of cothreads,
still needs a lot of work.
2002-09-08 17:58:00 +00:00
Thomas Vander Stichele
de527dd234 nicer looking
Original commit message from CVS:
nicer looking
2002-08-28 10:11:26 +00:00
Thomas Vander Stichele
5921d35a67 more nonsrcdir build fixes
Original commit message from CVS:
more nonsrcdir build fixes
2002-08-13 22:30:46 +00:00
Wim Taymans
a33c875057 Don't try to pull on disabled pads in the scheduler
Original commit message from CVS:
Don't try to pull on disabled pads in the scheduler
2002-07-24 21:09:46 +00:00
Thomas Vander Stichele
45d414338b Makefile.am portability fix better error handling, this solves the g_error_free assert error some people had
Original commit message from CVS:
Makefile.am portability fix
better error handling, this solves the g_error_free assert error some people
had
2002-07-12 14:14:30 +00:00
Wim Taymans
83f2253007 Set the scheduler to NULL in all cases.
Original commit message from CVS:
Set the scheduler to NULL in all cases.
2002-07-02 18:42:00 +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
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
Wim Taymans
bcb921d550 This makes more sense and solves the locking problem when a loop based element is selected as the entry point.
Original commit message from CVS:
This makes more sense and solves the locking problem when a loop based
element is selected as the entry point.
2002-06-23 12:50:12 +00:00
Wim Taymans
14186b75ea Or not..
Original commit message from CVS:
Or not..
2002-06-23 12:42:01 +00:00
Wim Taymans
b70675d241 Unlock an element even if it was a loop based one
Original commit message from CVS:
Unlock an element even if it was a loop based one
2002-06-23 12:21:50 +00:00
Andy Wingo
16074b7263 implement _destroy, and fix some bugs changing songs in the player doesn't work now, i don't know why yet
Original commit message from CVS:
implement _destroy, and fix some bugs

changing songs in the player doesn't work now, i don't know why yet
2002-06-23 04:31:45 +00:00
Thomas Vander Stichele
d3e33a16ac as promised, the header changes and some of wingo's virtual fixes as well by accident
Original commit message from CVS:
as promised, the header changes
and some of wingo's virtual fixes as well by accident
2002-06-22 23:17:44 +00:00
Wim Taymans
1fa83fa256 Pass some required params to cothreads_init
Original commit message from CVS:
Pass some required params to cothreads_init
2002-06-21 08:00:13 +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
b1125b04ba Added more debugging info
Original commit message from CVS:
Added more debugging info
2002-06-16 22:36:10 +00:00
Thomas Vander Stichele
8e0687e93d print the name
Original commit message from CVS:
print the name
2002-06-16 21:20:07 +00:00
Wim Taymans
02adc6b669 Better add the check instead of crashing
Original commit message from CVS:
Better add the check instead of crashing
2002-06-16 19:48:38 +00:00
Wim Taymans
bfca3a0739 Fixed the fast scheduler by proxying event to the event handler when the element is not event aware.
Original commit message from CVS:
Fixed the fast scheduler by proxying event to the event handler when the
element is not event aware.
2002-06-16 19:33:15 +00:00
Wim Taymans
4d85bfc2df Use setfunc to set the cothread function instead of _reset
Original commit message from CVS:
Use setfunc to set the cothread function instead of _reset
2002-06-16 17:34:14 +00:00