summaryrefslogtreecommitdiff
path: root/gst/gstscheduler.c
AgeCommit message (Collapse)AuthorFilesLines
2005-07-18Removed plugable schedulers.Wim Taymans1-415/+0
Original commit message from CVS: Removed plugable schedulers. Removed Scheduler/Manager from elements. Removed gsttypes.h, rearranged includes. Removed dependency pad<->element, element<>pipeline, and various others, fix includes. implement gst_pad_get_parent() with gst_object_get_parent() Make GstTask sefcontained. Fix _get_state() on GstBin, it did not return ASYNC with a 0 timeout. Fix endless loop in iterator_fold_with_resync.
2005-07-09check/gst/gstbin.c: add test for state change message on a binThomas Vander Stichele1-1/+1
Original commit message from CVS: * check/gst/gstbin.c: (START_TEST), (gst_bin_suite): add test for state change message on a bin * check/gst/gstelement.c: (START_TEST), (gst_element_suite): add another test * gst/gstbin.c: (gst_bin_init): * gst/gstbus.c: (gst_bus_init), (gst_bus_post): * gst/gstelement.c: (gst_element_post_message), (gst_element_set_state): * gst/gstelementfactory.c: (gst_element_factory_create): * gst/gstmessage.c: (gst_message_new): * gst/gstscheduler.c: various debugging additions and cleanups
2005-06-28*.c: Don't cast to GST_OBJECT when reffing or unreffing. Large ↵Andy Wingo1-1/+1
source-munging commit!!! Original commit message from CVS: 2005-06-28 Andy Wingo <wingo@pobox.com> * *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large source-munging commit!!!
2005-03-21Next big merge.Wim Taymans1-636/+9
Original commit message from CVS: Next big merge. Added GstBus for mainloop integration. Added GstMessage for sending notifications on the bus. Added GstTask as an abstraction for pipeline entry points. Removed GstThread. Removed Schedulers. Simplified GstQueue for multithreaded core. Made _link threadsafe, removed old capsnego. Added STREAM_LOCK and PREROLL_LOCK in GstPad. Added pad blocking functions. Reworked scheduling functions in GstPad to prepare for scheduling updates soon. Moved events out of data stream. Simplified GstEvent types. Added return values to push/pull. Removed clocking from GstElement. Added prototypes for state change function for next merge. Removed iterate from bins and state change management. Fixed some elements, disabled others for now. Fixed -inspect and -launch. Added check for GstBus.
2005-03-07First THREADED backport attempt, focusing on adding locks and making sure ↵Wim Taymans1-3/+3
the API is threadsafe. Needs more work. Mor... Original commit message from CVS: First THREADED backport attempt, focusing on adding locks and making sure the API is threadsafe. Needs more work. More docs follow this week.
2005-01-31docs/pwg/advanced-types.xml: Fix description for buffer-frames=0.Ronald S. Bultje1-0/+6
Original commit message from CVS: * docs/pwg/advanced-types.xml: Fix description for buffer-frames=0. * docs/gst/tmpl/gstbin.sgml: * gst/gstbin.c: (gst_bin_child_state_change_func), (gst_bin_change_state), (gst_bin_change_state_norecurse): * gst/gstbin.h: * testsuite/threads/Makefile.am: * testsuite/threads/threadi.c: (cb_timeout), (cb_quit), (cb_eos), (cb_state), (cb_play), (main): Fix non-recursive state changes to *really* change the state of the object, and not just call parent_class->state_change. Fix a lot of lockups caused by this. Fixes #132775. Add test for the problem. Also enable test to show #142588 (fixed). * gst/gstthread.c: (gst_thread_change_state), (gst_thread_child_state_change): Don't exit the thread if we go to NULL and are inside thread context. Instead, return control to the main thread context and exit from there. * gst/gstelement.c: (gst_element_disable_threadsafe_properties): Don't unset virtual functions, since those may still be used. That's not necessarily correct, but suffices for now. * configure.ac: * testsuite/Makefile.am: * testsuite/pad/Makefile.am: * testsuite/pad/chainnopull.c: (gst_test_sink_class_init), (gst_test_sink_base_init), (gst_test_sink_chain), (gst_test_sink_init), (main): * testsuite/pad/getnopush.c: (gst_test_src_class_init), (gst_test_src_base_init), (gst_test_src_get), (gst_test_src_init), (main): * testsuite/pad/link.c: (gst_test_element_class_init), (gst_test_element_base_init), (gst_test_src_get), (gst_test_src_loop), (gst_test_src_init), (gst_test_filter_chain), (gst_test_filter_loop), (gst_test_filter_init), (gst_test_sink_chain), (gst_test_sink_loop), (gst_test_sink_init), (cb_error), (main): Add tests to show #150546. Pass, but should fail (currently disabled from the testsuite). * gst/gstscheduler.c: (gst_scheduler_dispose): Dereference child schedulers on dispose (#94464). * testsuite/bytestream/filepadsink.c: (gst_fp_sink_init): Fix typo. * testsuite/threads/thread.c: (main): Add more debug.
2004-11-02gst/gstscheduler.c: Aplied clock distribution patch, this should fix bug ↵Wim Taymans1-2/+35
#148787. Original commit message from CVS: * gst/gstscheduler.c: (gst_scheduler_add_element), (gst_scheduler_remove_element), (gst_scheduler_state_transition): Aplied clock distribution patch, this should fix bug #148787.
2004-08-12add flag, reorder GstBuffer docsThomas Vander Stichele1-1/+3
Original commit message from CVS: add flag, reorder GstBuffer docs
2004-08-11add gst_scheduler_register shortcut similar to gst_element_registerBenjamin Otte1-0/+37
Original commit message from CVS: * docs/gst/gstreamer-sections.txt: * gst/gstscheduler.c: (gst_scheduler_register): * gst/gstscheduler.h: add gst_scheduler_register shortcut similar to gst_element_register * gst/schedulers/entryscheduler.c: (plugin_init): * gst/schedulers/gstbasicscheduler.c: (plugin_init): * gst/schedulers/gstoptimalscheduler.c: (plugin_init): use it
2004-07-06clean up clock lifecycle. fixes #109831Thomas Vander Stichele1-9/+19
Original commit message from CVS: clean up clock lifecycle. fixes #109831
2004-04-04gst/: implement gst_pad_collect as replacement for gst_pad_select.Benjamin Otte1-17/+0
Original commit message from CVS: * gst/gstpad.c: (gst_pad_collect_array), (gst_pad_collectv), (gst_pad_collect), (gst_pad_collect_valist), (gst_pad_selectv), (gst_pad_select): * gst/gstpad.h: * gst/gstscheduler.c: (gst_scheduler_pad_select), (gst_scheduler_lock_element), (gst_scheduler_unlock_element): * gst/gstscheduler.h: implement gst_pad_collect as replacement for gst_pad_select. deprecate gst_pad_select and gst_scheduler_(un)lock_element add new flag GST_SCHEDULER_FLAG_NEW_API for API that implements the new pad_select, lock and unlock calls. * gst/cothreads.c: (cothread_destroy), (cothread_switch): * gst/cothreads.h: * gst/schedulers/cothreads_compat.h: * gst/schedulers/gthread-cothreads.h: remove unused cothread_lock and cothread_unlock calls * gst/schedulers/entryscheduler.c: (gst_entry_scheduler_class_init), (gst_entry_scheduler_init), (_can_schedule_loop), (gst_entry_scheduler_get_handler), (gst_entry_scheduler_pad_select): update to new API * gst/schedulers/gstbasicscheduler.c: (gst_basic_scheduler_class_init), (gst_basic_scheduler_init), (gst_basic_scheduler_pad_select): remove useless lock and unlock calls, update pad_select to new API (untested) * gst/schedulers/gstoptimalscheduler.c: (gst_opt_scheduler_class_init): remove useless select, lock and unlock function calls * gst/elements/gstaggregator.c: (gst_aggregator_loop): use gst_pad_collect instead of gst_pad_select
2004-03-15don't mix tabs and spacesThomas Vander Stichele1-19/+20
Original commit message from CVS: don't mix tabs and spaces
2004-03-13gst-indent run on coreThomas Vander Stichele1-104/+113
Original commit message from CVS: gst-indent run on core
2004-01-14gst/gstclock.*: deprecate old interface and disable functions that aren't in ↵Benjamin Otte1-26/+2
use anymore. Original commit message from CVS: 2004-01-13 Benjamin Otte <in7y118@public.uni-hamburg.de> * gst/gstclock.c: (gst_clock_class_init), (gst_clock_init), (gst_clock_set_speed), (gst_clock_set_active), (gst_clock_is_active), (gst_clock_reset), (gst_clock_handle_discont): * gst/gstclock.h: deprecate old interface and disable functions that aren't in use anymore. * gst/gstelement.h: * gst/gstelement.c: (gst_element_get_time), (gst_element_wait), (gst_element_set_time), (gst_element_adjust_time): add concept of "element time" and functions to get/set this time. * gst/gstelement.c: (gst_element_change_state): update element time correctly. * gst/gstelement.c: (gst_element_get_compatible_pad_filtered): This is a debug message, not a g_critical. * gst/gstpad.c: (gst_pad_event_default): handle discontinuous events right with element time. * gst/gstscheduler.c: (gst_scheduler_state_transition): update to clocking fixes. set clocks on elements in READY=>PAUSED. The old behaviour caused a wrong element time on the first element that started playing. * gst/schedulers/gstbasicscheduler.c: (gst_basic_scheduler_class_init): * gst/schedulers/gstoptimalscheduler.c: (gst_opt_scheduler_class_init): remove code that just implements the default behaviour. * gst/elements/gstfakesink.c: (gst_fakesink_chain): update to use new clocking functions * testsuite/clock/clock1.c: (gst_clock_debug), (main): * testsuite/clock/clock2.c: (gst_clock_debug), (main): update to test new element time. * gst/autoplug/gstspideridentity.c: (gst_spider_identity_getcaps): use _get_allowed_caps instead of _get_caps. This catches filtered caps correctly. * testsuite/debug/commandline.c: update for new GST_DEBUG syntax. * testsuite/threads/Makefile.am: disable a test that only works sometimes.
2003-12-13removed GST_*_CAST. Disabling of type checking is done in glib.Benjamin Otte1-2/+8
Original commit message from CVS: removed GST_*_CAST. Disabling of type checking is done in glib.
2003-06-29GST_DEBUG reorganization containing loads of stuff:Benjamin Otte1-19/+19
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-05-01unreachable codeBenjamin Otte1-2/+0
Original commit message from CVS: unreachable code
2003-03-28Remove redundant _clock_setWim Taymans1-7/+5
Original commit message from CVS: Remove redundant _clock_set
2003-02-27Small cleanupWim Taymans1-3/+5
Original commit message from CVS: Small cleanup
2003-02-11Define default scheduler name in just one place.Wim Taymans1-1/+1
Original commit message from CVS: Define default scheduler name in just one place.
2003-02-10- Add more --disable optionsWim Taymans1-9/+8
Original commit message from CVS: - Add more --disable options - fix makefiles to only compile non-disabled features - some compile fixes. - removed extratypes, added gsturitype - make get/set clock on a bin overridable - some portability fixes for GUINT64 - separate pools from gstregistry.[ch] into gstregistrypool.[ch] - make gstobject size fixed, even if we disabled load/save - don't use 'new' as a variable as it is not a valib C++ variable
2003-02-02gst_object_swap -> gst_object_replace as it's a better name. Wait for next ↵Wim Taymans1-7/+7
commit to make gstelement.c compile again. Original commit message from CVS: gst_object_swap -> gst_object_replace as it's a better name. Wait for next commit to make gstelement.c compile again.
2003-01-18Forgot to set the name on a new schedulerfactory, oopsWim Taymans1-0/+1
Original commit message from CVS: Forgot to set the name on a new schedulerfactory, oops
2003-01-17More refcounting fixesWim Taymans1-2/+21
Original commit message from CVS: More refcounting fixes
2003-01-17More cleanups and refcount fixageWim Taymans1-3/+4
Original commit message from CVS: More cleanups and refcount fixage
2003-01-17- sink the systemclockWim Taymans1-11/+32
Original commit message from CVS: - sink the systemclock - unref scheduler in pipeline with new API - better ref/unref debug info in gstobject
2003-01-11- return boolean in _interrupt to better inform elementWim Taymans1-4/+9
Original commit message from CVS: - return boolean in _interrupt to better inform element - fix default bufferpool unref
2003-01-09first pass of connect->link gst-plugins and other stuff compiles without ↵Thomas Vander Stichele1-14/+14
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
2002-12-27- disable pads when going to PAUSED, we want to make sure no data is passing ↵Wim Taymans1-11/+8
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-19- CleanupsWim Taymans1-40/+114
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-14Documentation updatesWim Taymans1-7/+5
Original commit message from CVS: Documentation updates
2002-12-06Removing unused code related to stack allocation (cothreads_stackquery(), ↵David Schleef1-21/+0
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-11-27- Added first attempt at general caching mechanism (GstTimeCache renamed to ↵Wim Taymans1-2/+2
GstCache) Original commit message from CVS: - Added first attempt at general caching mechanism (GstTimeCache renamed to GstCache) - Some more clocking checks and updates (waiting on GST_CLOCK_TIME_NONE returns immediatly instead of blocking forever) - Moved clock get/set functions to element class instead of instance. - Added cache methods on elements. - Renamed GST_PROPS_BOOL_TYPE to GST_PROPS_BOOLEAN_TYPE to make it more consistent with gst_props_get/set_boolean and GST_PROPS_BOOLEAN. - Give short stats about plugins in gst-inspect.
2002-11-02- Reworked the clock to prepare for async notificationsWim Taymans1-1/+6
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-09-17Added vmethod for when an element changes scheduling behaviour (like ↵Wim Taymans1-1/+25
switching from chain based to loop based etc) Original commit message from CVS: Added vmethod for when an element changes scheduling behaviour (like switching from chain based to loop based etc)
2002-09-13- some cleanupsWim Taymans1-3/+10
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-13Reverted scheduler changeWim Taymans1-2/+2
Original commit message from CVS: Reverted scheduler change
2002-09-12- Make the return GList of gst_element_get_pad_list as constWim Taymans1-10/+4
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-12scheduler renamingThomas Vander Stichele1-1/+1
Original commit message from CVS: scheduler renaming - wingo or omega for cothreads package - basic or fast or optimal for algorithms
2002-09-12useful comments change thread -> cothread in varnames where it's applicable ↵Thomas Vander Stichele1-6/+6
code cleanups Original commit message from CVS: * useful comments * change thread -> cothread in varnames where it's applicable * code cleanups
2002-08-11better error handling, still needs improvementThomas Vander Stichele1-1/+7
Original commit message from CVS: better error handling, still needs improvement
2002-07-30Some debug infoWim Taymans1-2/+8
Original commit message from CVS: Some debug info
2002-07-08- Removed unused locking from the cothreadsWim Taymans1-0/+1
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-06-27free stack properly s/prefered/preferred/Andy Wingo1-8/+8
Original commit message from CVS: * free stack properly * s/prefered/preferred/
2002-06-27back to basicsThomas Vander Stichele1-1/+1
Original commit message from CVS: back to basics
2002-06-19Added _get_prefered_stack to the schedulerWim Taymans1-0/+21
Original commit message from CVS: Added _get_prefered_stack to the scheduler
2002-06-16Some small cleanups implement a default _clock_waitWim Taymans1-3/+6
Original commit message from CVS: Some small cleanups implement a default _clock_wait
2002-06-16changing default scheduler to wingo's spiffy standard one, since it doesn't ↵Thomas Vander Stichele1-1/+1
look up for as many users as basic ;) Original commit message from CVS: changing default scheduler to wingo's spiffy standard one, since it doesn't look up for as many users as basic ;)
2002-06-12Documentation updatesWim Taymans1-0/+1
Original commit message from CVS: Documentation updates Make spider forward bufferpools Remove some old registry code
2002-06-08Loop the clock providers until we find one with a clock.Wim Taymans1-2/+9
Original commit message from CVS: Loop the clock providers until we find one with a clock.