Commit graph

45 commits

Author SHA1 Message Date
Erik Walthinsen 91afe9cd73 Swapped PAUSED and PLAYING states, reworked thread interlocking.
Original commit message from CVS:
Swapped PAUSED and PLAYING states, reworked thread interlocking.
States are now: NULL <-> READY <-> PAUSED <-> PLAYING.

Had do update dv1394src, gst_arts, and xmmsinput, please test these out!

Cleaned up DEBUG output in several places to by much much less verbose
but still just as useful (denser).
2001-05-25 17:35:47 +00:00
Erik Walthinsen f5314d44b4 Merge from HEAD into INCSCHED1 at 200105231.
Original commit message from CVS:
Merge from HEAD into INCSCHED1 at 200105231.
2001-05-24 00:46:45 +00:00
Erik Walthinsen b619247000 fixed problem where mad wasn't an entry (it is now HACK HACK!!) and the scheduler wasn't catching the no entry case
Original commit message from CVS:
fixed problem where mad wasn't an entry (it is now HACK HACK!!) and the scheduler wasn't catching the no entry case
2001-05-23 19:49:56 +00:00
Erik Walthinsen ed06327f06 cothreads.c: added a comment on one of the tests gstbin.h: added the GST_BIN_SELF_SCHEDULABLE flag gstelement.c: clea...
Original commit message from CVS:
cothreads.c: added a comment on one of the tests
gstbin.h: added the GST_BIN_SELF_SCHEDULABLE flag
gstelement.c: cleaned up the _change_state function a little
gstobject.c: improved the refcounting DEBUGs
gstpad.c: moved the connected signal to after capsnego,
added the caps_nego_failed signal
gstpad.h: added the caps_nego_failed signal funcptr
gstscheduler.c: added the GST_BIN_SELF_SCHEDULABLE exception
gsttypefind.c: added check code around signal_emit to deal with the case
where the signal's handler shuts down the element
gstautoplugcache.c: added the first_buffer signal and caps_proxy arg
gstautoplugger.c: significant rework, it functions quite nicely actually
2001-05-14 20:08:42 +00:00
Erik Walthinsen aec5a57022 updated autoplugcache so it can be removed mid-signal, now autoplugtest works
Original commit message from CVS:
updated autoplugcache so it can be removed mid-signal, now autoplugtest works
2001-05-07 21:46:15 +00:00
Erik Walthinsen e88151bc2e fixed gst_scheduler_pad_disconnect (never ignore compiler warnings\!) and updated a few INFO lines
Original commit message from CVS:
fixed gst_scheduler_pad_disconnect (never ignore compiler warnings\!) and updated a few INFO lines
2001-05-06 22:12:46 +00:00
Erik Walthinsen 9bc5f785d7 Add the GST_ELEMENT_NO_ENTRY flag, which when set will force the scheduler to skip over an element as an option for t...
Original commit message from CVS:
Add the GST_ELEMENT_NO_ENTRY flag, which when set will force the scheduler
to skip over an element as an option for the first cothread jump.  This is
needed because libraries like mad don't ever seem to want to quit.  Thus
they ignore COTHREAD_STOPPING and can't be trusted to be the entry.
2001-05-04 22:14:35 +00:00
Erik Walthinsen 649c98a5f7 Some minor DEBUG cleanups, renamed the various scheduler-specific routines to actually be called gst_schedule_ instea...
Original commit message from CVS:
Some minor DEBUG cleanups, renamed the various scheduler-specific routines
to actually be called gst_schedule_ instead of gst_bin_.
2001-05-04 20:43:44 +00:00
Erik Walthinsen 114c923c9f /me is an idiot
Original commit message from CVS:
/me is an idiot
2001-05-01 23:00:51 +00:00
Erik Walthinsen 879f3b4f29 - fixed configure.in %VAR stuff
Original commit message from CVS:
- fixed configure.in %VAR stuff
- fixed gstreamer.pc.in description string
- fixed up incremental scheduling some more
- updated the GST_DEBUG_FUNCPTR code to no longer need a hash
- minor updates to DEBUG colorization
- new test/mpeg2parse4.c
2001-05-01 21:41:40 +00:00
Matt Howell 7678183d1a fixed another thread synch case... better debug
Original commit message from CVS:
fixed another thread synch case... better debug
2001-04-28 01:46:00 +00:00
Matt Howell cb0068581c initial fix of thread synch for queues and state change
Original commit message from CVS:
initial fix of thread synch for queues and state change
2001-04-27 20:55:47 +00:00
Erik Walthinsen 284bfca414 Added element-level locking support, implemented for cothreads with a mutex held whenever an element is actually curr...
Original commit message from CVS:
Added element-level locking support, implemented for cothreads with a mutex
held whenever an element is actually currently running.  This should be done
with atomic variables eventually, but the best I can find is to use
<asm/spinlock.h> from the kernel, which brings in too much for my taste.

Also increased cothread stack size to 32KB and max cothread count to 64,
which fits within the default pthread 2MB stack.  It would probably be good
to do a pthread_attr_getstacksize() to verify that it's 2MB, and if
linuxthreads had a pthread_attr_setstacksize(), we could remove these
limits.
2001-04-25 22:32:17 +00:00
Erik Walthinsen e6a59c8a62 Merged HEAD from BRANCH-INCSCHED1-200104161 into BRANCH-INCSCHED1.
Original commit message from CVS:
Merged HEAD from BRANCH-INCSCHED1-200104161 into BRANCH-INCSCHED1.
2001-04-16 21:43:28 +00:00
Erik Walthinsen 395527b2f2 latest updates, things are very close to working
Original commit message from CVS:
latest updates, things are very close to working
2001-04-15 23:59:02 +00:00
Erik Walthinsen f75bb0f38b snapshot for matth to work with while I fly over to Europe....
Original commit message from CVS:
snapshot for matth to work with while I fly over to Europe....
2001-03-30 00:06:43 +00:00
Erik Walthinsen 3b2990b425 update to latest copy
Original commit message from CVS:
update to latest copy
2001-03-09 18:50:12 +00:00
Erik Walthinsen 5782e4477b Fixed bug with reconfig, where switching back into an element landed it in code that still thought it was connected t...
Original commit message from CVS:
Fixed bug with reconfig, where switching back into an element landed it
in code that still thought it was connected to the previous element.  It
now checks to see if the peer's peer has changed, and deal accordingly.
2001-02-21 00:57:15 +00:00
Erik Walthinsen 999f30ff02 Significant progress. Now able to do most operations live, without any failure. tests/incsched.c currently faults a...
Original commit message from CVS:
Significant progress.  Now able to do most operations live, without any
failure.  tests/incsched.c currently faults at the last iteration, not
yet sure why.
2001-02-20 08:19:05 +00:00
Erik Walthinsen 0871fad29b More incsched progress. Should be able to get itereration going again tomorrow.
Original commit message from CVS:
More incsched progress.  Should be able to get itereration going again
tomorrow.
2001-02-18 10:00:04 +00:00
Erik Walthinsen df32997396 Yes!, incsched is getting closer.
Original commit message from CVS:
Yes!, incsched is getting closer.
2001-02-17 07:11:12 +00:00
Erik Walthinsen 3ff90ac8fb More incsched updates. Now need to get the headers redone...
Original commit message from CVS:
More incsched updates.  Now need to get the headers redone...
2001-02-14 23:23:03 +00:00
Erik Walthinsen 08427ffb2a Minor changes to incsched stuff, need to make more major modifications to manager concept now, so I'm checkpointing.
Original commit message from CVS:
Minor changes to incsched stuff, need to make more major modifications to manager concept now, so I'm checkpointing.
2001-02-13 02:40:24 +00:00
Erik Walthinsen 8edfe3f5de First round of incremental scheduling. Manager setting and managed_elements lists are now handled at bin_add/remove ...
Original commit message from CVS:
First round of incremental scheduling.  Manager setting and managed_elements
lists are now handled at bin_add/remove time.  Scheduling chains can be
created incrementally as well, though there are still some pieces missing.
2001-02-12 23:08:07 +00:00
Wim Taymans 1a66e83975 - backported the xml load bug in the properties
Original commit message from CVS:
- backported the xml load bug in the properties
- backported the videosink bug
- make sure the regiontype is set to NONE after a getregion
- an ugly fix (copy the chainfunction outselves) to make the avidecoder
work again.
2001-02-10 14:46:37 +00:00
Erik Walthinsen c17ed10404 Reworked getregion/pullregion stuff. Region is now specified by a type (OFFSET_LEN, TIME_LEN, etc.) and two guint64'...
Original commit message from CVS:
Reworked getregion/pullregion stuff.  Region is now specified by a type
(OFFSET_LEN, TIME_LEN, etc.) and two guint64's.  They are offset and len,
where offset can be used for the time field, and len would be zero or
the time unit (say, 33ms for video).
2001-02-05 17:16:23 +00:00
Wim Taymans 51cbf22624 This is a megapatch with the following changes:
Original commit message from CVS:
This is a megapatch with the following changes:

- moved the gchar *name to GstObject, removed the ones in GstElement and
GstPad.
- moved the parent handling completely into GstObject. This cause *all* of
the plugins to fail (except those that used gst_pad_get_parent)
- rearanged the XML save handling.
- GstObject now has a class function save/restore_thyself.
- GstObject has a generic method gst_object_save_thyself, this makes it
possible to fire a signal wehever a new object is loaded. This is needed
so we can add XML save hooks.
- GstXML API has changed slightly. You now have to create a GstXML object
first before you can actually load something. This makes it possible to
attach a signal to GstXML whenever an object is loaded. I'm not sure we
will keep this interface.
- GstObject can now print the path_string without knowing about the GstPad and
GstElement types.
- Added gst_bin_get_by_name_recurse_up to lookup an element in the current
element hierarchy.
- added XML namespaces to the saved pipelines the namespace is:
http://gstreamer.net/gst-core/1.0/
namespaces are needed to distinguish user generated XML from the core XML.

Note that the plugins still contain a macro GST_OBJECT_PARENT that will be
replaced with gst_pad_get_parent shortly.
2001-01-29 00:06:02 +00:00
Wim Taymans 5c27fa2ac4 Check for NULL buffers before chaining/pushing them to the next element.
Original commit message from CVS:
Check for NULL buffers before chaining/pushing them to the next element.
NULL buffers happen on EOS.
gst_bin_iterate now returns a gboolean indicating something usefull happened.
It the bin is EOS, it returns FALSE.
2001-01-20 18:20:17 +00:00
Wim Taymans 7ce56f5dab More EOS changes.
Original commit message from CVS:
More EOS changes.
When a bin2 is found inside a bin1, we add the bin2 to the EOS providers
of the bin1. When there is nothing more to schedule in bin1 and bin2 has
fired EOS, bin1 is in EOS.
The queue overrides the EOS notification and calls EOS on the src pad
when the queue is empty and the sink pad is in EOS.
2001-01-20 17:59:25 +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
Erik Walthinsen 74f8050844 Major cleanup of the latest ghostpad changes. Fixed everything that broke, correctly. Someone will want to go updat...
Original commit message from CVS:
Major cleanup of the latest ghostpad changes.  Fixed everything that
broke, correctly.  Someone will want to go update the API doc templates.
2001-01-19 09:37:32 +00:00
Erik Walthinsen c31f9a570c First pass at updating to new ghostpad system. The objects are in place,
Original commit message from CVS:
First pass at updating to new ghostpad system.  The objects are in place,
I now need to go and get all the Bin end of things worked out.  Testing
should be fairly easy, at least for verification.

Everything I've tried so far works with no changes, with is amazing.
That's just cool.  Once again we rewrite an entire subsystem, and nothing
else notices anything but the new features ;-)
2001-01-19 02:23:35 +00:00
Erik Walthinsen 4bdaed3966 removed a leak
Original commit message from CVS:
removed a leak
2001-01-07 04:28:04 +00:00
Erik Walthinsen 1e04cefaf2 Mega update of INFO, DEBUG, and ERROR subsystems, renamed with GST_ prefix.
Original commit message from CVS:
Mega update of INFO, DEBUG, and ERROR subsystems, renamed with GST_ prefix.
GST_DEBUG now takes a category parameter, which is the same as GST_INFO
system.  They are now called GST_CAT_*.  All the GST_DEBUGs are set to 0
for now, we need to go and fix all these eventually.
2001-01-01 03:14:40 +00:00
Erik Walthinsen 9a0438ba93 Started work on better ghostpad management, and started to build the low- level EOS mechanism.
Original commit message from CVS:
Started work on better ghostpad management, and started to build the low-
level EOS mechanism.

Also removed a couple of printouts that aren't needed any more.
2000-12-31 22:18:05 +00:00
Wim Taymans c306021ce3 Fixed buffer flag handling gstplay used old flag handling updated some plugins for the new objects/error handling
Original commit message from CVS:
Fixed buffer flag handling
gstplay used old flag handling
updated some plugins for the new objects/error handling
Fixed a serious buffer error in gst_buffer_append
2000-12-29 19:45:45 +00:00
Wim Taymans fe6128b118 Fixed a serious bug in gst_props_new: properties with a 0 value causes a segfault
Original commit message from CVS:
Fixed a serious bug in gst_props_new: properties with a 0 value causes
a segfault
Fixed a possible bug in gstautoplug when one of the constructed paths
was empty
Commented out a too liberal assert in gstscheduler.c
Added GST_BUFFER_DISCONTINUOUS
tried to fix asyndisksrc
2000-12-29 18:23:41 +00:00
Erik Walthinsen a80b0c26d5 Added DEBUG, INFO, and ERROR systems. Very little code is converted yet.
Original commit message from CVS:
Added DEBUG, INFO, and ERROR systems.  Very little code is converted yet.
Policy decisions need to be made as to what kinds of cases get what kind
of response, and what the default ERROR response should be.  Right now it
will print out all the information, then have gdb spew a stack trace.
2000-12-29 10:02:17 +00:00
Erik Walthinsen ca1c48e95c Updated copyright in all the libgst files.
Original commit message from CVS:
Updated copyright in all the libgst files.
Created gst_private.h, set up all files to use it.
2000-12-28 22:12:02 +00:00
Wim Taymans 9655c3b593 Updated the API docs.
Original commit message from CVS:
Updated the API docs.
2000-12-28 21:42:23 +00:00
Wim Taymans f4a635c8dc Pending editor changes. fixes for autoplug of elementary MPEG1 video streams make sure mp3 types get compiled videosi...
Original commit message from CVS:
Pending editor changes.
fixes for autoplug of elementary MPEG1 video streams
make sure mp3 types get compiled
videosink changes for xml loading
2000-12-28 02:51:07 +00:00
Wim Taymans 41aa51ba45 Fixes for the new scheduler.
Original commit message from CVS:
Fixes for the new scheduler.
Autoplug works again with mp3/mpeg1/ogg
2000-12-28 00:18:26 +00:00
Erik Walthinsen 1c568619e9 Added some cleanup, so create_plan can be called multiple times.
Original commit message from CVS:
Added some cleanup, so create_plan can be called multiple times.
2000-12-27 23:42:15 +00:00
Erik Walthinsen 8139aeca9e Added code to attempt the scheduling of chained cases. Very simply right now. Also added code to allow the use_coth...
Original commit message from CVS:
Added code to attempt the scheduling of chained cases.  Very simply right
now.  Also added code to allow the use_cothread flag of a bin to force all
the chains to use cothreads as well.
2000-12-27 00:46:26 +00:00
Erik Walthinsen a46c5a73f0 More massive changes to the scheduling system. Moved the scheduling code to gstscheduler.[ch], so an child bin can r...
Original commit message from CVS:
More massive changes to the scheduling system.  Moved the scheduling code
to gstscheduler.[ch], so an child bin can replace the scheduler.
Introduced the concept of chains, which are subsets of the list of managed
elements for a given manager bin, which get scheduled as separate entities.
gst_bin_iterate_func should be pretty much fixed now, the scheduling code
gets to do all the hard work.

Cothreaded case work in the couple tests I've tried, chained is next.
2000-12-26 23:51:04 +00:00