Original commit message from CVS:
Merge the HEAD branch into AUTOPLUG2.
More work on the negotiation process to allow for proxied negotiation
which is needed in the queue.
gst_pad_connect perform a negotiation and returns a gboolean indicating
successfull connection. The pads are disconnected when negotiation fails.
I'm not satisfied/sure about the implementation yet, needs some more
investigation.
Original commit message from CVS:
A first attempt at pad negotiation.
- _renegotiate can be called by a plugin to negotiate the caps
- _renegotiate is called whenever a pad changes its caps
- the caps cannot contain lists or ranges
- the pad caps are now only set explicitly using gst_pad_set_caps, the
padtemplate caps are not transfered to the pad caps.
missing:
- no notification when negotiation fails
- autoplugging is broken
- the editor doesn't show correct caps
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.
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).
Original commit message from CVS:
Added a first attempt for XML embedding in the main core XML.
Objects will emit a signal that a user app can connect to in order to
insert its XML into the tree.
You can catch the object_loaded signal in GstXML to parse the user
supplied XML data in the stream. The object_loaded signal is implemented
with a custom made class signal. All GstObject classes now automatically
create a GstSignalObject that serves as a proxy to the user app when an
object is loaded. All objects are currently responsible to emit the
class signal themselves.
runxml and createxml serve as an example how the XML hooks can be used to
insert and retrieve custom XML tags.
Original commit message from CVS:
Lots of plugins fixes where the parentage macros were replaced with the
correct gst_*_get_parent.
Updated the example.
'gstreamer' now is the doc type instead of GST-Pipeline
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.
Original commit message from CVS:
Add gst_element_request_compatible_pad and remove gst_element_request_pad.
Implemented something reasonable for gst_element_request_compatible_pad,
but havn't tested much: it won't work for tee because the pad templates
have no caps, and negotiation is not yet written, so it is assumed that the
tee pads can't connect to anything.
Original commit message from CVS:
Docs updates
Added XML load from memory functionality
Undid the videosink patch, something else is wrong now on my machine:
no MMX acceleration :-(
Original commit message from CVS:
Applied the patch from Sepp Wijnands <mrrazz@garbage-coderz.net> that solves
the 'OSS hangs when opening the device when in use' bug.
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.
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.
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.
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.
Original commit message from CVS:
ALPHA COTHREADS WORK! Worked around a nasty stack issue that probably
can't be solved anyway. Tomorrow the UDB build will commence, and let the
best guess win!
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 ;-)
Original commit message from CVS:
Added mthodes to request an element to create pads: gst_element_request_pad*
This can be used to construct a tee and a muxer/mixer/aggregator element.
Moved the tee element to elements/ because it can now be handled with the
new pad request features.
The padfactory also has some changes: a pad can now be of presence REQUEST,
which means that the pad can be requested from this plugin (doh).
Original commit message from CVS:
Updates to cothreads code, including non-working alpha. Changed things a
bit, including PPC. Not having a PPC machine, I need someone to test
these changes and report back whether they worked or not.
Original commit message from CVS:
Adding nasty hack to rules to generate cothreads.{o,lo}, to get dependencies
right. Rules copied from automake, and therefore a bit dependent on automake
keeping doing dependency things the same kind of way, but it should work as
long as automake puts dependencies into .deps/*.P
Original commit message from CVS:
Massive build fixup. Will send message to -devel list later with details
on the changes and what they mean for Makefile.am writers. Check
docs/random/omega/build/TODO for a list of things that I had to make sure
of.
NOTE: this requires a complete rebuild of all plugins, since I also
changed the STATE enum to a bitfield instead of sequential numbers.
Original commit message from CVS:
Added an extra signal_cond to queue to make sure that the waiting thread
is woken up. Can somebody with queue problems verifify that this does
improve the situation a bit. I'm suspecting that something else is going
on, like a pthreads bug or something.
Small updates to the fake elements.
Original commit message from CVS:
Handle the tee element like bin, thread, pipeline, so that it can be used
in gstreamer-inspect and gstreamer-launch...
Original commit message from CVS:
gstreamer-register will now never cause the
** WARNING **: gstplugin: registry needs rebuild
warning to appear - sets a hidden global in gstplugin.c to turn the
warning off.
Fix a warning in gst/cothreads.c (function was declared extern, defined
static)
Original commit message from CVS:
Check plugin repository up-to-dateness by scanning through all directories
on path, and checking that they and all their files are older than the
repository. Give warning message if not.
Original commit message from CVS:
Config directory (which currently just holds the registry)ecan now be set
by configure --with-configdir=<directory path>